두 개의 정규 표현식을 캡처하는 방법

두 개의 정규 표현식을 캡처하는 방법

이 명령에서는 *가 점이 아닌 *.com 또는 *.net과 유사한 문자열을 추출하고 싶습니다. 나는 이것을 썼다:

grep -P -E '^[^.]+\.com$ |^[^.]+\.net$' example.csv 

다음 오류가 발생합니다.

grep: conflicting matchers specified

명확히 할 수 있습니까?

답변1

-PPCRE( )와 확장 정규식( )을 동시에 사용할 수 없습니다 . -E이 경우에는 PCRE 표현식을 전혀 사용하지 않는 것처럼 보이므로 해당 항목을 제거해도 됩니다 -P. 그 이후에는 공백도 일치시킬 수 없습니다 $.

큰 표현식을 더 짧은 표현식으로 결합합니다.

grep -E '^[^.]+\.(com|net)$'

또는,

grep -E -x '[^.]+\.(com|net)'

-x옵션을 사용하면 grep완전한 행만 일치됩니다.

이 표현식은 점이 아닌 문자의 0이 아닌 숫자, 점, 또는 뒤에 오는 문자와 일치 net합니다 com.

관련 정보