从另一个文件中删除包含某些字符串的行

从另一个文件中删除包含某些字符串的行
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因为 contains 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

~                                               

相关内容