나는 다음 명령을 가지고 있습니다 :
grep -Pvi ".(\.var|\.foo|\.varfoo)$" myfile.txt > newfile.txt
참고: .var, .foo 및 .varfoo(및 기타 여러 항목)는 myfile.txt의 행입니다.
내 파일.txt:
.var
.foo
.varfoo
.xxx.var
.yyy.foo
.zzz.varfoo
이 명령은 잘 작동하며 해야 할 일을 수행합니다(.var, .foo, .varfoo로 끝나는 줄은 모두 제거하되 3개는 유지). 명령을 실행한 후:
새 파일.txt
.var
.foo
.varfoo
이제 명령에 넣지 않도록 .var, .foo, .varfoo를 "greplist.txt"에 넣어 "grep"이 읽도록 해야 합니다.
greplist.txt
.var
.foo
.varfoo
어떻게 해야 합니까?
답변1
여기에는 두 가지 과제가 있습니다.
-P
싱글 모드만 지원- 파일의 각 줄은 텍스트 자체뿐만 아니라 완전한 패턴이어야 합니다.
그래서 그걸로 설정 greplist.txt
하면
.\.var$
.\.foo$
.\.varfoo$
그런 다음 실행
grep -vi -f greplist.txt myfile.txt > newfile.txt
당신은 당신이 찾고있는 것을 얻어야합니다.