我尝试了Stack Overflow的一些解决方案,但没有取得好成绩。
我有2个文件,想要删除file1
中提到的file2
条目。
File1中
1,email1@domain.com,9
9,email9@domain.com,1
8,email8@domain.com,6
2,email2@domain.com,1
15,email15@domain.com,3
6,email6@domain.com,1
文件2
email1414@domain.com
email9@domain.com
email15@domain.com
email1919@domain.com
结果
1,email1@domain.com,9
8,email8@domain.com,6
2,email2@domain.com,1
6,email6@domain.com,1
你能帮帮我吗?
我尝试失败了:
awk -F',' 'NR==FNR{c[$1]++;next};c[$2] > 0' file2 file1
答案 0 :(得分:3)
因为如果没有误报的可能性,这可能是最简单的
$ grep -vf file2 file1
1,email1@domain.com,9
8,email8@domain.com,6
2,email2@domain.com,1
6,email6@domain.com,1
更好的想法是更改为固定字符串(而不是模式匹配)
$ grep -vfF file2 file1
答案 1 :(得分:1)
这是我的awk文件:
result = JSON.parse(result);
根据您的示例,它会打印file2中不在file2中的所有行。
答案 2 :(得分:1)
尝试关注问题并告诉我这是否对您有所帮助。
解决方案1:
awk 'FNR==NR{a[$0];next} ($2 in a){next} 1' File2 FS="," File1
解决方案第二:
awk 'FNR==NR{a[$0];next} !($2 in a)' File2 FS="," File1