我有一個日誌文件,其中包含各個線程的執行開始時間和結束時間。我做了一半的工作,但我需要一些幫助來完成另一半。我寫了這個命令 -如何從日誌文件中查找字段的第一次和最後一次出現?
cat 2017-05-15.log | grep 'Executing ETL' | tr -s ' ' | cut -f2,3,4,5,8 -d' ' | sort -k5 -n
產生以下輸出:
15 May 2017 03:43:40 696
15 May 2017 03:44:35 696
15 May 2017 03:45:02 696
15 May 2017 23:30:22 9502
15 May 2017 23:49:40 9502
15 May 2017 23:50:50 9502
15 May 2017 23:51:11 9502
15 May 2017 23:52:11 9502
15 May 2017 23:52:42 9502
15 May 2017 02:18:32 12795
15 May 2017 02:19:35 12795
15 May 2017 02:20:02 12795
15 May 2017 02:33:39 13674
15 May 2017 02:35:13 13674
15 May 2017 02:35:42 13674
15 May 2017 18:52:28 19143
15 May 2017 18:53:01 19143
15 May 2017 18:53:35 19143
15 May 2017 18:53:59 19143
15 May 2017 18:54:40 19143
此輸出的進程ID,這是最後一列進行排序。每個進程Id的第一次出現是進程'開始時間,而最後一次出現是相同的結束時間。 我只需要顯示每個進程的第一個(開始時間)和最後一個(結束時間)。就像這樣:
15 May 2017 03:43:40 696
15 May 2017 03:45:02 696
15 May 2017 23:30:22 9502
15 May 2017 23:52:42 9502
15 May 2017 02:18:32 12795
15 May 2017 02:20:02 12795
15 May 2017 02:33:39 13674
15 May 2017 02:35:42 13674
15 May 2017 18:52:28 19143
15 May 2017 18:54:40 19143
條目的每一個進程ID號不固定。輸出不必嚴格按照這種格式。但我需要能夠清楚地看到每個過程的開始和結束時間。
正如我所說的在本說明書中,我在第一步驟中生成的輸出被上進程ID(第5列)排序。 – RodrikTheReader
如果只有一個條目會怎麼樣? –