[bash] 標準エラー出力をフィルタリング

2020年5月11日月曜日

bash grep linux unix

標準エラー出力なんとかしたい

bashでの作業中に標準エラー出力に、実害のない警告メッセージが延々と出てくることがないだろうか。
他のエラーメッセージが紛れてしまうので、これを除去したい。
$ somecommand
わかってるからもういいよ
なんかエラー!
わかってるからもういいよ


標準出力であれば、以下のように grep -v で特定のメッセージを取り除くことができる。
$ somecommand | grep -v 'わかってるからもういいよ'
なんかエラー!


でも、これは標準エラー出力に出ているのだ。

プロセス置換を使う

こういう時はプロセス置換を使う。
$ somecommand 2> >(grep -v 'わかってるからもういいよ' >&2)
なんかエラー!

これで標準エラー出力をフィルタリングできた!