1. 程式人生 > 其它 >linux 中 cat + sort + uniq取交集、並集、特有項

linux 中 cat + sort + uniq取交集、並集、特有項

1、測試資料

root@ubuntu01:/home/test# ls   ## 測試資料
a.txt  b.txt
root@ubuntu01:/home/test# cat a.txt   
a
b
c
d
e
root@ubuntu01:/home/test# cat b.txt
c
d
e
f
g

 

2、取兩個檔案的並集

root@ubuntu01:/home/test# ls
a.txt  b.txt
root@ubuntu01:/home/test# cat a.txt
a
b
c
d
e
root@ubuntu01:/home/test# cat b.txt
c
d
e
f
g
root@ubuntu01:/home/test# cat a.txt b.txt | sort -u   ## 取兩個檔案的並集
a b c d e f g root@ubuntu01:
/home/test# cat a.txt b.txt | sort | uniq ## 取兩個檔案的並集 a b c d e f g

 

3、取兩個檔案的交集

root@ubuntu01:/home/test# ls
a.txt  b.txt
root@ubuntu01:/home/test# cat a.txt
a
b
c
d
e
root@ubuntu01:/home/test# cat b.txt
c
d
e
f
g
root@ubuntu01:/home/test# cat a.txt b.txt | sort | uniq -d   ## 取兩個檔案的交集
c d e root@ubuntu01:
/home/test# cat a.txt b.txt | sort | uniq -D ## 取兩個檔案的交集 c c d d e e

 

4、取兩者特有項的合集

root@ubuntu01:/home/test# ls
a.txt  b.txt
root@ubuntu01:/home/test# cat a.txt
a
b
c
d
e
root@ubuntu01:/home/test# cat b.txt
c
d
e
f
g
root@ubuntu01:/home/test# cat a.txt b.txt | sort | uniq -u   ## 取兩個檔案特有項的合集
a b f g

 

5、取a.txt中的特有項

root@ubuntu01:/home/test# ls
a.txt  b.txt
root@ubuntu01:/home/test# cat a.txt
a
b
c
d
e
root@ubuntu01:/home/test# cat b.txt
c
d
e
f
g
root@ubuntu01:/home/test# cat a.txt b.txt b.txt | sort | uniq -u   ## 取a.txt中的特有項
a
b

 

6、取b.txt中的特有項

root@ubuntu01:/home/test# ls
a.txt  b.txt
root@ubuntu01:/home/test# cat a.txt
a
b
c
d
e
root@ubuntu01:/home/test# cat b.txt
c
d
e
f
g
root@ubuntu01:/home/test# cat a.txt a.txt b.txt | sort | uniq -u      ## 取b.txt中的特有項
f
g