grepマニュアルから
‘-e pattern’ ‘--regexp=pattern’
これは使用できます複数の検索パターンの指定、または「-」で始まるパターンを保護します。 ("-e" は POSIX で指定されます。)
「複数の検索モードを指定する」とはどういう意味ですか?
これは、出力に指定されたすべての検索パターンのすべての行が含まれることを意味しますか-e
?もしそうなら、パターンの1つと一致する複数のgrepをパイピングするのと同じことを行いますか?
ありがとうございます。
答え1
既存のコメントと回答を明確にするには、いいえ、OPが説明したように動作しません。
実際:
grep -e foo -e bar -e baz myfile
以下を含む行を印刷します。誰でも foo
または bar
または baz
。
grep foo myfile | grep bar | grep baz
以下を含む行を印刷します。foo
そして bar
そして baz
(必ずしもこの順序である必要はありません)。
答え2
いいえ、これはこれらのパターンが互いにANDで接続されているという意味ではありません。
つまり、複数のパターンを指定でき、2 番目以降のパターンはファイル名として解釈されません。
以下を考慮してください。
grep pattern1 file1
十分簡単です。さて、次のことを考えてみましょう。
grep pattern1 file1 file2
そして:
# This doesn't work
grep pattern1 pattern2 file1 file2
# But this does. There's no difference that's obvious to a computer.
grep pattern1 file1 file2 file3
問題が表示されますか?
ただし、 を使用すると、-e
次のことができます。
grep -e pattern1 -e pattern2 file1 file2
答え3
~からPOSIX grepの説明:
デフォルトでは、[...]パターンがターミネータを除く行の一部と一致する場合は、入力行を選択する必要があります
<newline>
。