다른 파일에서 특정 문자열을 포함하는 줄 제거

다른 파일에서 특정 문자열을 포함하는 줄 제거
grep -v -x -f f2 f1

나는 이것을 시도했지만 내가 가지고 있기 때문에 작동하지 않습니다

f2:

test 141.1.11.1
test2 8.18.8.8
4.4.4.4

f1:

test 1.1.1.1
test2 8.8.8.8
test3 4.4.4.4

test3 4.4.4.4포함하기 때문에 줄을 삭제하는 것이 아이디어 4.4.4.4이지만 작동하지 않습니다. 내 명령에 무슨 문제가 있나요?

정확히 입력하면 제거되지만 4초만 포함된 경우에는 제거되지 않습니다.

답변1

옵션 을 제거하면 됩니다 -x. 해당 옵션의 목적은 부분이 아닌 전체 줄에서 주어진 정규식을 일치시키는 것입니다.

grep -v -f file2 file1

위에서 언급한 것처럼 정규식 일치 대신 문자열 일치를 원하는 경우 -F명령에 옵션을 추가하세요.

grep -v -F -f file2 file1

답변2

#!/usr/bin/python
import re
mf=[]
k=open ('f2','r')
x=open('f1','r')
for b in x:
    mf.append(b.strip())

co_li=len(mf)

for f in  k:
    for d in range(0,co_li,1):
        if f.strip() in mf[d]:
            print "\n".join( mf[0:d]+mf[d+2:])

테스트를 거쳐 잘 작동함

test 1.1.1.1
test2 8.8.8.8

~                                               

관련 정보