複数のgrepを相互にパイプするだけでなく、前のgrepの結果に基づいてgrepを実行する方法はありますか?たとえば、以下のログファイル出力があるとします。
ID 1000 xyz occured
ID 1001 misc content
ID 1000 misc content
ID 1000 status code: 26348931276572174
ID 1000 misc content
ID 1001 misc content
まず、ログファイルファイル全体をgrepして、「xyzが発生しました」が存在するかどうかを確認したいと思います。そうである場合は、そのイベントのID番号を取得し、そのID番号を持つファイル内のすべての行をgrepして、ステータスコードを探します。
xargsなどを使用できると想像していましたが、機能しないようです。
grep "xyz occured" file.log | awk '{ print $2 }' | xargs grep "status code" | awk '{print $NF}'
実際にこれを行う方法についてのアイデアはありますか?