ログの検索パターン

ログの検索パターン

検索ログファイルを取得しようとしていますが、文字列を見つけたら検索を終了する必要があります。以下のファイルを使用しています。

tail -100 | grep "^$( date +'%Y-%m-%d')" /home/sabari/scripts/log/log.log |grep "Migration status code updated to: S" && pkill -P $$ tail

手動で終了するまで、検索は終了しません。誰でも助けることができますか?

[sabari@mypc log]$ tail -100 | grep "^$( date +'%Y-%m-%d')" /home/sabari/scripts/log/log.log |grep "status updated to: S"
2020-05-19 00:38:27,245  INFO statuslog:? - [P=109585:O=0:CT] status updated to: S
^C

答え1

これがあなたが望むものであるかどうかはわかりませんが、もしそうなら:

tail -f /home/sabari/scripts/log/log.log | grep --line-buffered ^$(date +'%Y-%m-%d') | sed '/status updated to: S/p;q'

sed コマンドのパターンが見つかると、コマンドは終了します。

答え2

コマンドtailが不完全です

$ tail -100

この標準入力を読み取ろうとしましたが、おそらくあなたが望むものではありません。

次のことを試してください

$ tail -100 /home/sabari/scripts/log/log.log | grep ...

関連情報