找到文件2中的字符串时,删除文件1中的完整记录

时间:2016-09-23 14:25:10

标签: linux shell unix

我有一个包含数据的文件:

ID Name
1  abc
2  def
....

我有另一个包含字符串的文件:

ID
1
9
10
...

我想用字符串文件中的字符串搜索数据文件(只有ID),如果在数据文件中找到该字符串,则只删除该记录。

所以在上面的例子中:

只有ID = 1的记录才会从数据文件中删除。

这必须在unix系统上完成。

我试过这个:

grep -v -F /path/to/string/file/string.txt /path/to/data/file/data.csv

这会列出内容,但不会编辑/删除数据文件中的记录。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用此awk解决方案:

awk 'NR==FNR{keep[$1]; next} !($1 in keep)' string.txt data.csv
2  def

参考: Effective AWK Programming