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
~