web-dev-qa-db-ja.com

複数の引数でgrep -vを使用する

これを行う簡単な方法はありますか? grep -v foo file | grep -v bar

おそらく非常にエレガントな方法でegrepを使用する方法がありますが、プレーンな古いgrepを使用する方法は?

編集:grep -v 'foo\|bar' fileはGNU grepでのみ機能するようです。私はSolarisを使用しています。そのための解決策はありますか?

12
rahmu

通常のように最初の非オプション引数としてではなく、-e引数を各式に渡すことにより、単一のgrepコマンドで複数のテストを実行できます。

$ grep -v -e foo -e bar file

つまり、コマンドが行うのと同じことです。「foo」も「bar」も含まないfileの行を出力します。

-vを削除すると、これが完全に反転することに注意してください。論理演算も変更されます! "foo" or "bar"を含むすべての行を取得します。

21
Warren Young

grep -Ev 'Word1|Word2'は問題なく動作するはずです

12
Šimon Tóth