次のコマンドを使用しています
tail -f /mydir/myfile | grep "searchterm" >> outfile
それがなければうまくいきます-f
が、-f
必要なものはファイルに何も記録されません。コンソールに以下を出力します。
tail -f /mydir/myfile | grep "searchterm"
ファイルに正しく書き込むようにコマンドを受け取るにはどうすればよいですか?
答え1
GNUがある場合grep
:
tail -f /mydir/myfile | grep --line-buffered "searchterm" >> outfile
これによりすべての行が作成されますが、パフォーマンスが低下します。
または、より多くの出力が出るのを待ちます。プロセスを終了するには、そのtail
プロセスを終了したら、終了する前にバッファをgrep
フラッシュする必要があります。
答え2
grepが出力をバッファリングして、そうでないように見えますか?努力する:
tail -f /mydir/myfile | grep --line-buffered "searchterm" >> outfile