網上轉的,不錯躯保,比使用awk容易點
給定兩個文件 a.txt 和 b.txt 旋膳,每行是一個記錄(假設沒有重復),要求輸出兩集合的交集途事、并集验懊、差集擅羞,輸出的結果只包括唯一項。交集定義為同時出現在兩個文件中的記錄項义图,并集定義為出現在任何一個文件中的記錄項减俏,差集(A-B)定義為出現在A中而且不出現在B中的記錄,對稱差集定義為只出現在一個文件中的記錄歌溉。
假設 a.txt 包括 a, c, b 三行垄懂。假設 b.txt 包括 d, e, c, b 四行。
交集痛垛,把兩個文件放到一起排序草慧,只輸出次數多于一次的項:
$ sort a.txt b.txt | uniq -d
b
c
并集,把兩個文件放到一起排序匙头,重復的項只算一次:
$ sort a.txt b.txt | uniq
a
b
c
d
e
差集(A-B)漫谷,把B的元素重復2份和A的元素放到一起排序,只輸出出現一次的項:
$ sort a.txt b.txt b.txt | uniq -u
a
對稱差蹂析,把兩個文件放到一起排序舔示,只輸出出現一次的項:
$ sort a.txt b.txt | uniq -u
a
d
e