파일이 있어요
1 IF 9/1 Joe
2 IF 9/1 Marry
3 IF 9/12 Larry
4 IF 9/15 Page
IF 9/1
나는 단지 사용 되지 않는 것을 인쇄하고 싶습니다 grep
. 나는 사용할 수 있다는 것을 알고 있습니다.
grep -Fvx 'IF 9/1' file.txt
그러나 어떤 이유로 인해 예상한 결과를 얻지 못했습니다.
답변1
-x
grep
전체 줄이 일치하도록 합니다 . 다음을 수행해야 합니다.
grep -Fv 'IF 9/1[^[:alnum:]_]' file
답변2
문제는 이것이 9/1
또한 일치할 것이라는 점이다 9/12
. 따라서 다음을 사용하십시오.
grep -Fv 'IF 9/1 ' file.txt
또한 x
옵션을 사용하지 마십시오. 전체 행과 정확히 일치하는 일치 항목만 선택합니다.
답변3
예, 말씀하셨지만 grep
부울 awk
조건이 포함된 경우 솔루션은 일반적으로 덜 신비스럽고 더 간단해 보입니다.
awk '!($2=="IF" && $3=="9/1")' file.txt
답변4
grep
PCRE(Perl 호환 정규식)를 사용할 수 있습니다 .
$ grep -P 'IF 9/1(?! )' file.txt
3 IF 9/12 Larry
4 IF 9/15 Page
(?! )
너비가 0인 부정 예측 모드로, 뒤에 공백이 없는지 확인합니다. IF 9/1
즉, 뒤에 공백 이외의 문자가 하나 이상 있는지 확인합니다. 이렇게 하면 원하는 결과를 얻을 수 있습니다.