开发者

Shell Script - comparing lines of text, deleting matches

开发者 https://www.devze.com 2022-12-28 02:00 出处:网络
I\'ve done some searching for this but cannot find what I\'m after, specifically. I have two files:\"a.txt\", \"b.txt\".

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

精彩评论

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