我正在使用IBM LSF并尝试在特定时间段内获取使用情况统计信息。我发现bhist
可以完成这项工作,但简写形式bhist
输出并不显示我需要的所有字段。如何解析bhist日志
我想知道的是:
是bhist的输出字段定制?我需要的字段是:
- <作业ID>
- <用户>
- <队列>
- < JOB_NAME>
- <项目名称>
- < job_description>
- < submission_time >
- < pending_time后>
- < RUN_TIME>
如果是不可能的,长形式(
bhist -l
)输出显示我需要的一切,但格式是难以操纵。我粘贴了以下格式的示例。
例如,记录之间的行号是不固定的,并且在每个事件的自动换行可能会破坏行的字我试图扫描的中间。如何使用sed
和awk
解析此格式?
JobId <1531>, User <user1>, Project <default>, Command< example200>
Fri Dec 27 13:04:14: Submitted from host <hostA> to Queue <priority>, CWD <$H
OME>, Specified Hosts <hostD>;
Fri Dec 27 13:04:19: Dispatched to <hostD>;
Fri Dec 27 13:04:19: Starting (Pid 8920);
Fri Dec 27 13:04:20: Running with execution home </home/user1>, Execution CWD
</home/user1>, Execution Pid <8920>;
Fri Dec 27 13:05:49: Suspended by the user or administrator;
Fri Dec 27 13:05:56: Suspended: Waiting for re-scheduling after being resumed
by user;
Fri Dec 27 13:05:57: Running;
Fri Dec 27 13:07:52: Done successfully. The CPU time used is 28.3 seconds.
Summary of time in seconds spent in various states by Sat Dec 27 13:07:52 1997
PEND PSUSP RUN USUSP SSUSP UNKWN TOTAL
5 0 205 7 1 0 218
------------------------------------------------------------
.... repeat
因为它有点宽泛。尝试[编辑]显示你的尝试,你想要的和你面临的问题。 – fedorqui
正确的解决方案将是awk(假设没有现有的面向应用程序的工具)。 sed是用于简单替换个别行的,就是这些 - 请记住,不管是什么古怪的字符组合,人们都会陷入sed命令行并投掷你。也许你不明白@fedorquis评论的重要部分 - 你必须至少向我们展示预期的输出结果,因为我们有机会理解你的需求。 –