删除文件中包含从其他文件中获取的某些字符串的行

时间:2013-05-15 16:41:17

标签: sed awk

我有两个文本文件:

File 1:
abc 1x21 

File 2:
sdc 1x43
xcvyu 03x01
abc 1x21
xyz 4x23

并希望得到

File 3:
sdc 1x43
xcvyu 03x01
xyz 4x23

this thread中找到类似的内容,但它对我不起作用。

3 个答案:

答案 0 :(得分:1)

GNU grep的最简单的解决方案:

$ grep -vxf file1 file2 > file3
sdc 1x43
xcvyu 03x01
xyz 4x23

答案 1 :(得分:0)

试试这一行:

awk 'NR==FNR{a[$0];next} !($0 in a)' file1 file2 > file3

没有测试,但应该工作。

答案 2 :(得分:0)

这可能适合你(GNU sed):

sed 's|.*|/&/d|' file1 | sed -f - file2 > file3