UNIX AWK:24時間のログを取得する

UNIX AWK:24時間のログを取得する

ログファイルから過去24時間のデータを抽出しようとしています。頑張ってる

awk -v d="$(date -d'24 hours ago' +'%Y-%m-%d %H:%M')" '$1" "$2>=d &&/ERROR/' data.log

これはパターンを探し、日付が連続して最初の場合にうまく機能します。

2016-03-06 1:59 ERROR --GOOD
2016-03-06 2:04 ERROR --GOOD

ただし、他の場合は、「」という単語を含むすべての行を取得します。間違い「そして無視する日付範囲。

私のdata.logファイルは次のとおりです。

ERROR [Thrift:28] 2016-03-04 01:26:07,949 CustomTThreadPoolServer.java:224 - Error occurred during processing of message. <br/>
ERROR [Thrift:24] 2016-03-04 01:26:07,952 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:9] 2016-03-04 01:26:07,958 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:3] 2016-03-04 01:26:07,961 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:7] 2016-03-05 01:26:07,966 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:30] 2016-03-06 01:26:07,979 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:29] 2016-03-06 01:26:07,989 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:31] 2016-03-06 01:26:07,991 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>

どんな助けでも大変感謝します。ありがとう

答え1

$1" "$2日付と比較していますが、埋め込みや埋め込みなど$1があります。明らかな。ERROR$2[Thrift:31]$3" "$4

printプログラムが期待どおりに機能しない場合は、変数の値を調べて期待どおりに機能していることを確認するためにいくつかのsを追加することをお勧めします。

関連情報