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