テラバイト相当のログファイルからログデータを抽出する必要があります。重要なのは、必要なデータは識別できるパターンで開始および終了しますが、その間のコードは10〜100行以上の範囲で指定できます。
例:
Start
# lots of lines here
End
現在、私がしているのはgrep -A 50 "Start"
、これで開始とその後の50行が表示されます。しかし、ほとんどすべての場合、それは私が必要とするよりも多かれ少なかれです。結果のレポートファイルが必要以上にギガバイト大きくなることを意味し、必要な情報が得られないことを意味します。
標準のUnix/Linuxツールを使用して、必要なものを正確に抽出する方法はありますか?
Awkで試してみてください:
awk '/^Start/,/^End/' file
またはsedを好む場合:
sed -n '/Start/,/End/p' file