내용을 제외하려면 파일로 grep

내용을 제외하려면 파일로 grep

나는 다음 명령을 가지고 있습니다 :

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

당신은 당신이 찾고있는 것을 얻어야합니다.

관련 정보