これを行う簡単な方法はありますか? grep -v foo file | grep -v bar
おそらく非常にエレガントな方法でegrepを使用する方法がありますが、プレーンな古いgrepを使用する方法は?
編集:grep -v 'foo\|bar' file
はGNU grepでのみ機能するようです。私はSolarisを使用しています。そのための解決策はありますか?
通常のように最初の非オプション引数としてではなく、-e
引数を各式に渡すことにより、単一のgrep
コマンドで複数のテストを実行できます。
$ grep -v -e foo -e bar file
つまり、コマンドが行うのと同じことです。「foo」も「bar」も含まないfile
の行を出力します。
-v
を削除すると、これが完全に反転することに注意してください。論理演算も変更されます! "foo" or "bar"を含むすべての行を取得します。
grep -Ev 'Word1|Word2'
は問題なく動作するはずです