我正在使用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評論的重要部分 - 你必須至少向我們展示預期的輸出結果,因爲我們有機會理解你的需求。 –