开发者

Shell Script - comparing lines of text, deleting matches

I've done some searching for this but cannot find what I'm after, specifically.

I have two files: "a.txt", "b.txt".

Each contains a list of email addresses, separated by开发者_如何转开发 newlines.

For all lines in "a.txt", I need to check for a match anywhere in "b.txt". If so, the email address in "a.txt" needs to be removed.

(Alternatively, a new file "c.txt" could be created with the output if that is easier.)

I'm using Mac OS X, so am looking for a shell script that could help, or pointers to how I'd go about constructing the script. Thanks for any help.


grep -F -x -f b.txt -v a.txt > c.txt

or, equivalently,

fgrep -x -f b.txt -v a.txt


Use comm command like this:

cat a.txt | sort > a2.txt
cat b.txt | sort > b2.txt
comm -23 a2.txt b2.txt > c.txt


awk 'FNR==NR{_[$1];next}(!($1 in _))' b.txt a.txt > c.txt


I like the grep/fgrep answer, but here is another cat/sort option:

cat a.txt b.txt | sort -u > c.txt
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜