繁体   English   中英

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

[英]How to use awk to delete lines of file1 whose column 1 values exist in file2 in Ubuntu?

说我们有这样的file1.csv

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

和file2.csv这样

"dfwer"
"fewf"

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

"agvsad",314
"gregerg",413

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

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

或者,使用grep:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM