Linux에서 grep과 함께 음수 일치를 사용하는 방법(일치하지 않는 줄 인쇄)

Linux에서 grep과 함께 음수 일치를 사용하는 방법(일치하지 않는 줄 인쇄)

grep 패턴 또는 정규식과 일치하는 파일의 줄을 인쇄하는 Linux용 명령줄 검색 유틸리티입니다. 주어진 문자열을 포함하는 파일의 모든 행을 필터링하기 위해 일치 항목을 반전시키는 것도 유용합니다.

grep과의 부정 일치

에서 음수 일치를 사용하려면  또는 플래그 grep와 함께 명령을 실행해야 합니다 . 이것은 주어진 패턴과 일치하지 않는 줄만 인쇄합니다.-v--invert-match

grep -v "bar"file

그러나 일치하는 항목이 없으므로 기술적으로 일치하는 항목 grep 이 없기 때문에 플래그를 사용 -o 하여 “일치하는 항목만”을 출력할 방법이 없습니다. grep 문자열에서 여러 번 일치할 수 있지만 이 경우 일치 항목이 여러 개 있어도 문제가 되지 않습니다. 단일 매치는 grep 라인 스킵이 발생합니다.

이것은 정규식(regexes)에서도 작동하며 정규식과 일치하는 모든 문자열을 인쇄합니다.

grep -v "foo ba[rz]"file

음수 일치를 수행하는 정규식을 작성할 수 있지만 일반적으로 이 방법으로 일치를 되돌리는 것이 더 쉽습니다.

또는 를 사용하려는 경우 awk느낌표 수정자를 사용하여 정규식을 반전할 수 있습니다.

awk '!/bar/' file

음수 일치 파일 이름

소문자 플래그 -l 를 grep 사용하면 실제 일치하는 내용 대신 일치 항목이 포함된 파일 이름이 인쇄됩니다. 이것은 파일 목록을 스캔할 때 유용할 수 있지만 때로는 반전시키는 것도 유용합니다.

Reverse 는 반대 작업을 수행 -l 하는 대문자 변형 입니다.-L

grep -L "bar". /*.txt

-v 일치하지 않는 파일을 인쇄하기 전에 c 플래그 를 사용하여 일치를 뒤집지 않았는지 확인하십시오. 그렇지 않으면 -L일치가 두 번 반전되어 원하는 효과를 얻지 못하는 “이중 반대” 상황이 발생합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다