これを行うより簡単な方法はありますか?
grep -v foo file | grep -v bar
egrepを使う非常にエレガントな方法があるかもしれませんが、通常のold grepを使うのはどうですか?
編集:grep -v 'foo\|bar' file
GNU grepでのみ動作するようです。私はSolarisを使用しています。解決策はありますか?
ベストアンサー1
一般的に見られるように、オプションではなく最初の引数の代わりに各式に引数を渡すことで、単一のコマンドgrep
で複数のテストを実行できます。-e
$ grep -v -e foo -e bar file
これは、コマンドが実行するのと同じ操作を示しています。つまり、file
「foo」や「bar」を含まない行を印刷します。
-v
これを削除すると、論理演算も変更されることに注意してください。 "foo"を含むすべての行を取得します。または「バー」。