Rails のログファイルを tail -f
で見たいんだけど余計なものはフィルタリングして表示されないようにしたかった。最初は以下のようにしてみた。
⚡ tail -f log/development.log | grep -v -e ‘asset|Cache|Rendered’
これだと条件にマッチする行は表示されなくなるけど改行が削除されずに空行がたくさん表示される。これでは見やすいとは言えない。以下のように sed
で空行を削除するようにしてみた。
⚡ tail -f log/development.log | grep -v -e ‘asset|Cache|Rendered’ | sed -e ‘/^$/d’
しかしこうすると必要な情報まで表示されなくなってしまう。 tail
ではなく cat
とかでやると望んだ通りになる。 tail
-> grep
-> sed
の流れだとうまくいかないぽかった。
“tail grep sed” でググったら以下のような記事を発見したので試しに grep に —line-buffered
オプションを渡してみた。
⚡ tail -f log/development.log | grep -v -e 'asset|Cache|Rendered' --line-buffered | sed -e '/^$/d'
これで望んだ通りの出力になった。便利。