假设我们有像这样的file1.csv
"agvsad",314
"gregerg",413
"dfwer",53214
"fewf",344
和file2.csv这样
"dfwer"
"fewf"
如何使用awk删除file2中存在第1列值的那些行,并获取file3,如下所示:
"agvsad",314
"gregerg",413
顺便说一下,我正在处理数百万行
答案 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