通过将列与另一个文件中的列进行匹配来从文件中删除条目

时间:2014-12-18 01:35:46

标签: python bash perl awk gawk

我有两个文件f1.txt和f2.txt。如果第一列在File2(f2.txt)中有匹配的条目,我希望能够删除文件1(f1.txt)中的行。 f2每行只有1列,其中每行f.txt将有两列或更多列。这是一个例子:

cat f1.txt

1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 1000
2, 100, 200, 300, 400
3, 100, 2000, 3000
4, 400, 500 
5, 500, 600, 700, 800, 900, 1000
猫f2。 TXT

2
4

这是所需的输出:

1, 10, 20, 30, 40
3, 100, 2000, 3000, 400
5, 500, 600, 700, 800

1 个答案:

答案 0 :(得分:2)

修改模式文件f2.txt,如下所示:

sed -i -e 's/^/\^/;s/$/\\b/' file1

f2.txt看起来像

^2\b
^4\b
etc.

然后将文件与grep:

进行比较
grep -vf f2.txt f1.txt