tailの結果を2回grepすると表示されない@Linux

こんな感じで、grep するとマッチするはずのaaaaがなぜか何も表示されません。

$ cat hoge.txt
aaaa
bbbb
$ tail -f hoge.txt | grep aaa | grep aaa

実は2番目のgrepが悪さしているようで、性能低下を招かないように2番目のgrepがバッファリングし、ある程度溜まってから3番目のgrepに結果を渡しているようです。

バッファリングは、–line-buffered オプションを使うと無効にできます。

$ tail -f hoge.txt | grep --line-buffered aaa | grep aaa
aaaa

はい。表示されましたね。

タイトルとURLをコピーしました