我已经做了一些搜索,但是找不到我想要的东西,特别是。
我有两个文件:“a.txt”,“b.txt”。
每个都包含一个电子邮件地址列表,以换行符分隔。
对于“a.txt”中的所有行,我需要在“b.txt”中的任意位置检查匹配项。如果是这样,则需要删除“a.txt”中的电子邮件地址。
(或者,如果更容易,可以使用输出创建新文件“c.txt”。)
我正在使用Mac OS X,所以我正在寻找可以提供帮助的shell脚本,或者指出我将如何构建脚本。谢谢你的帮助。
答案 0 :(得分:3)
grep -F -x -f b.txt -v a.txt > c.txt
或等同地
fgrep -x -f b.txt -v a.txt
答案 1 :(得分:2)
使用comm
这样的命令:
cat a.txt | sort > a2.txt
cat b.txt | sort > b2.txt
comm -23 a2.txt b2.txt > c.txt
答案 2 :(得分:0)
awk 'FNR==NR{_[$1];next}(!($1 in _))' b.txt a.txt > c.txt
答案 3 :(得分:0)
我喜欢grep / fgrep的答案,但这里有另一个cat / sort选项:
cat a.txt b.txt | sort -u > c.txt