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
-B
10000
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]"