grep
連続ストリームで使用することは可能ですか?
私が言いたいのは、一種のtail -f <file>
コマンドですが、grep
興味のある行だけを残すために出力をオンにするということです。
試してみましたが、一度完了するとしか実行できないようtail -f <file> | grep pattern
です。つまり、決して実行できないようです。grep
tail
ベストアンサー1
grep
BSD grep (FreeBSD、Mac OS X など) を使用するときに、行バッファリング モードをオンにします。
tail -f file | grep --line-buffered my_pattern
しばらく前までは、--line-buffered
GNU grep (ほとんどすべての Linux で使用) ではデフォルトでフラッシュされていたため問題なかったようです (SmartOS、AIX、QNX などの他の Unix ライクな環境では状況によって異なります)。ただし、2020 年 11 月現在、--line-buffered
必要です (少なくとも openSUSE の GNU grep 3.5 では必要ですが、以下のコメントに基づくと一般的に必要なようです)。