私は、さまざまなスレッドの実行開始時刻と終了時刻を含むログファイルを持っています。私は仕事の半分をやったが、残りの半分を終わらせるためにいくつかの助けが必要だ。この出力は、最後の列であるプロセスIDでソートされログファイルからフィールドの最初と最後のオカレンスを見つける方法は?
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
:私は、これは次の出力を生成
cat 2017-05-15.log | grep 'Executing ETL' | tr -s ' ' | cut -f2,3,4,5,8 -d' ' | sort -k5 -n
をコマンド - 書きました。各プロセス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
エントリが1つだけの場合はどうなりますか? –