grep으로 한 단어를 제외하려면 어떻게해야합니까?
나는 다음과 같은 것이 필요하다 :
grep ^"unwanted_word"XXXXXXXX
grep의 -v
(for --invert-match
) 옵션을 다음과 같이 사용할 수도 있습니다 .
grep -v "unwanted_word" file | grep XXXXXXXX
grep -v "unwanted_word" file
이 라인 필터링합니다 unwanted_word
및 grep XXXXXXXX
패턴 만 라인을 나열됩니다 XXXXXXXX
.
편집하다:
귀하의 의견에서을 제외한 모든 줄을 나열하려는 것처럼 보입니다 unwanted_word
. 이 경우 필요한 것은 다음과 같습니다.
grep -v 'unwanted_word' file
나는 질문을 "어떻게 단어를 일치 시키지만 다른 단어를 제외 시키는가?"라는 질문을 이해했다. 하나의 솔루션이 두 개의 greps 인 경우 : 첫 번째 grep은 원하는 "word1"을 찾고 두 번째 grep은 "word2"를 제외한다.
grep "word1" | grep -v "word2"
내 경우 : grep의 "word"옵션이 수행하지 않는 "plot"과 "#plot"을 구별해야합니다 ( "#"는 영숫자가 아닙니다).
도움이 되었기를 바랍니다.
옵션으로 grep
Perl 정규 표현식을 지원하는 경우 -P
할 수 있습니다 (bash의 경우 tcsh의 경우 이스케이프해야 함 !
).
grep -P '(?!.*unwanted_word)keyword' file
데모:
$ cat file
foo1
foo2
foo3
foo4
bar
baz
이제 foo
제외하고 모두 나열하겠습니다foo3
$ grep -P '(?!.*foo3)foo' file
foo1
foo2
foo4
$
올바른 솔루션은 다음 grep -v "word" file
과 awk
동등한를 사용 하는 것입니다.
awk '!/word/' file
당신이, 당신이 말하는,하고자하는 더 복잡한 상황이 일어날 경우, XXX
표시하고 YYY
있지 표시, 다음 awk
대신 여러 배관의 편리한 온다 grep
들 :
awk '/XXX/ && !/YYY/' file
# ^^^^^ ^^^^^^
# I want it |
# I don't want it
더 복잡한 것을 말할 수도 있습니다. 예를 들면 : 나는 그 라인 중 하나를 포함 할 XXX
또는 YYY
아니지만 ZZZ
:
awk '(/XXX/ || /YYY/) && !/ZZZ/' file
기타
grep -v를 사용하여 일치 반전 :
grep -v "unwanted word" file pattern
이 -v
옵션은 패턴과 일치하지 않는 모든 선을 표시합니다.
grep -v ^unwanted_word
grep은 '-v'또는 '--invert-match'옵션을 제공하여 일치하지 않는 행을 선택합니다.
예 :
grep -v 'unwanted_pattern' file_name
'unwanted_pattern'이없는 file_name 파일의 모든 행을 출력합니다.
폴더 내의 여러 파일에서 패턴을 검색하는 경우 다음과 같이 재귀 검색 옵션을 사용할 수 있습니다
grep -r 'wanted_pattern' * | grep -v 'unwanted_pattern'
여기서 grep은 현재 디렉토리 내의 모든 파일에서 발생하는 'wanted_pattern'을 모두 나열하고 두 번째 grep으로 전달하여 'unwanted_pattern'을 필터링합니다. '|' -파이프는 쉘에게 왼쪽 프로그램의 표준 출력 (grep -r 'wanted_pattern'*)을 오른쪽 프로그램의 표준 입력 (grep -v 'unwanted_pattern')에 연결하도록 지시합니다.
파일이 많은 디렉토리가 있습니다. 문자열 "speedup"을 포함하지 않는 모든 파일을 찾으려면 다음 명령을 성공적으로 사용했습니다.
grep -iL speedup *
참고 URL : https://stackoverflow.com/questions/4538253/how-can-i-exclude-one-word-with-grep
'development' 카테고리의 다른 글
HTML 양식에서 자동 완성을 비활성화하는 W3C 유효한 방법이 있습니까? (0) | 2020.02.19 |
---|---|
예외를 발생시키는 Java 8 Lambda 함수? (0) | 2020.02.19 |
AngularJS ng- 클릭 중지 (0) | 2020.02.19 |
2 차원 배열을 만들기위한 구문 (0) | 2020.02.19 |
for 루프를 끊지 않고 배열을 반복하고 항목을 제거 (0) | 2020.02.19 |