2 つの日付間のログの印刷 [重複]

2 つの日付間のログの印刷 [重複]

2つの日付の間のログの詳細を取得したいが、次を使用して何も印刷できません。

egrep "^\[MAY 16 11:00:00\]"  alert.log -A 10000 | egrep "^\[MAY 16 16:30:00\]" -B 10000

答え1

使用sed:

sed -n '/May 16 11:00:00/,/May 16 16:30:00/p' /path/to/inputfile

の場合、grep問題は引数の順序が最初になる可能性があると思います。-A-B引数を入れます。後ろに入力ファイルなので、、;grepという名前のファイルを読み取ろうとすると、角かっこをエスケープしません。パイプラインは次のように動作できます。-A-B10000

grep -E -A10000 'May 16 11:00:00' alert.log | grep -E -B10000 'May 16 16:30:00'

これは、検索中の正確なタイムスタンプと実際に一致するログエントリがある場合にのみ機能します。これに応じて、検索制限で目的の最初の項目と最後の項目を調整します。

答え2

egrepあなたが提供した例に基づいて、次のものを使用してください。

egrep "May 16 1[1-6]:..:.." /path/to/file | egrep -v "May .. 16:[3-5][1-9]:[0-9][1-9]"

関連情報