GNU grepの出力をバッファしない (--line-buffered)

忘れたころにたまに戸惑う。ログをgrepしたものをパイプに通してさらにgrepすると、grepがバッファしてしまうのでリアルタイムに出力されなくなる。そんなときは--line-buffered をつけると良い。

  --line-buffered       行ごとに出力を掃き出す
$ tail -f /var/log/httpd/access_log | grep --line-buffered "POST" | grep --line-buffered 'HTTP/1\.." 503'

※ この例ならgrep二回通さなくても正規表現をちゃんと書けばいいだけだけど。良い例が思いつかなかった。