grepで「-e」「複数の検索パターンを指定する」とはどういう意味ですか?

grepで「-e」「複数の検索パターンを指定する」とはどういう意味ですか?

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>

関連情報