更新時にログファイルを読み取るためにtailを使用しており、grepが特定の文字列を返した場合にループを終了したいと考えています。「プログラムで」プロセスを終了または強制終了する方法がわかりません
誰か素晴らしいアイデアがありますか?サンプルスクリプトは次のとおりです。
tail -f /var/log/{system.log,kernel.log} | grep -i "vendor: 0x22b8"
ありがとう :)
あなたはこのように効果的にそれを行うことができます:
tail -f /var/log/{system.log,kernel.log} | awk '
{print}
/vendor: 0x22b8/ {exit}
'
awkコマンドは、文字列を最初に検出したときに終了します。tailコマンドは、SIGPIPEメカニズムが原因で、次にパイプに書き込もうとしたときに強制終了されます。
grep
最大カウントで使用:
tail -f /var/log/{system.log,kernel.log} | grep -i "vendor: 0x22b8" -m 1