grep에서 "-e" "여러 검색 패턴 지정"은 무엇을 의미합니까?

grep에서 "-e" "여러 검색 패턴 지정"은 무엇을 의미합니까?

grep 매뉴얼에서

‘-e pattern’
‘--regexp=pattern’

이것은 사용될 수 있습니다여러 검색 패턴 지정, 또는 "-"로 시작하는 패턴을 보호합니다. ("-e"는 POSIX에 의해 지정됩니다.)

"여러 검색 모드 지정"은 무엇을 의미합니까?

이는 출력에 지정된 모든 검색 패턴에 대한 모든 행이 포함된다는 의미입니까 -e? 그렇다면 각각 패턴 중 하나와 일치하는 여러 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로 연결되어 있다는 의미는 아닙니다.

즉, 여러 패턴을 지정할 수 있으며 두 번째 및 후속 패턴은 파일 이름으로 해석되지 않습니다.

다음을 고려하세요:

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>.

관련 정보