網(wǎng)上轉(zhuǎn)的,不錯(cuò),比使用awk容易點(diǎn)
給定兩個(gè)文件 a.txt 和 b.txt ,每行是一個(gè)記錄(假設(shè)沒有重復(fù)),要求輸出兩集合的交集、并集、差集,輸出的結(jié)果只包括唯一項(xiàng)。交集定義為同時(shí)出現(xiàn)在兩個(gè)文件中的記錄項(xiàng),并集定義為出現(xiàn)在任何一個(gè)文件中的記錄項(xiàng),差集(A-B)定義為出現(xiàn)在A中而且不出現(xiàn)在B中的記錄,對(duì)稱差集定義為只出現(xiàn)在一個(gè)文件中的記錄。
假設(shè) a.txt 包括 a, c, b 三行。假設(shè) b.txt 包括 d, e, c, b 四行。
交集,把兩個(gè)文件放到一起排序,只輸出次數(shù)多于一次的項(xiàng):
$ sort a.txt b.txt | uniq -d
b
c
并集,把兩個(gè)文件放到一起排序,重復(fù)的項(xiàng)只算一次:
$ sort a.txt b.txt | uniq
a
b
c
d
e
差集(A-B),把B的元素重復(fù)2份和A的元素放到一起排序,只輸出出現(xiàn)一次的項(xiàng):
$ sort a.txt b.txt b.txt | uniq -u
a
對(duì)稱差,把兩個(gè)文件放到一起排序,只輸出出現(xiàn)一次的項(xiàng):
$ sort a.txt b.txt | uniq -u
a
d
e