連続ストリームを 'grep' するにはどうすればいいですか? 質問する

連続ストリームを 'grep' するにはどうすればいいですか? 質問する

grep連続ストリームで使用することは可能ですか?

私が言いたいのは、一種のtail -f <file>コマンドですが、grep興味のある行だけを残すために出力をオンにするということです。

試してみましたが、一度完了するとしか実行できないようtail -f <file> | grep patternです。つまり、決して実行できないようです。greptail

ベストアンサー1

grepBSD grep (FreeBSD、Mac OS X など) を使用するときに、行バッファリング モードをオンにします。

tail -f file | grep --line-buffered my_pattern

しばらく前までは、--line-bufferedGNU grep (ほとんどすべての Linux で使用) ではデフォルトでフラッシュされていたため問題なかったようです (SmartOS、AIX、QNX などの他の Unix ライクな環境では状況によって異なります)。ただし、2020 年 11 月現在、--line-buffered必要です (少なくとも openSUSE の GNU grep 3.5 では必要ですが、以下のコメントに基づくと一般的に必要なようです)。

おすすめ記事