如何使用awk删除在Ubuntu中file2中存在第1列值的file1行?

时间:2014-08-29 00:09:26

标签: linux awk

假设我们有像这样的file1.csv

"agvsad",314
"gregerg",413
"dfwer",53214
"fewf",344

和file2.csv这样

"dfwer"
"fewf"

如何使用awk删除file2中存在第1列值的那些行,并获取file3,如下所示:

"agvsad",314
"gregerg",413

顺便说一下,我正在处理数百万行

2 个答案:

答案 0 :(得分:2)

awk 'NR==FNR{seen[$0]++; next} !seen[$1]' file2.csv FS=, file1.csv应该做你想要的,但是需要足够的内存来存储file2.csv中每一行的条目。

答案 1 :(得分:1)

作为替代方案,使用grep:

$ grep -vf file2.csv file1.csv 
"agvsad",314
"gregerg",413