comm: 比較兩個(gè)已排序的文件
語法: comm [-123][--help][--version][第一個(gè)文件][第二個(gè)文件]
補(bǔ)充說明:這項(xiàng)指令會(huì)一列列的比較兩個(gè)已排序文件的差異凛篙,并將其結(jié)果顯示出來。如果沒有指定任何參數(shù)栏渺,則會(huì)把結(jié)果分成3行顯示呛梆,第1行是僅在第一個(gè)文件中出現(xiàn)的列,第2行是僅在第二個(gè)文件中出現(xiàn)過的列磕诊,第3行則是在兩個(gè)文件中都出現(xiàn)過的列填物。若給予的文件名稱是"-",則comm指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備中讀取數(shù)據(jù)霎终。
參數(shù):
-1 不顯示在第1個(gè)文件中出現(xiàn)的列
-2 不顯示在第2個(gè)文件中出現(xiàn)的列
-3 不顯示只在第1或第2個(gè)文件中出現(xiàn)的列
選項(xiàng)1 2和3抑制相應(yīng)的列顯示滞磺,例如
comm -12 顯示兩個(gè)文件中都出現(xiàn)的行
comm -23 顯示在第1個(gè)文件出現(xiàn),而不是在第2個(gè)文件出現(xiàn)的行
comm -123 什么都不顯示
一些例子:
第一:兩個(gè)文件的交集莱褒,并集
前提條件:兩個(gè)文件不得有重復(fù)的行(即兩個(gè)文件都要去重)
- 取出兩個(gè)文件的并集 cat file1 file2 | sort | uniq >file3
- 取出兩個(gè)文件的交集 cat file1 file2 | sort | uniq -d >file3
- 刪除交集 cat file1 file2 | sort | uniq -u < file3
第二:兩個(gè)文件合并
- 一個(gè)在上一個(gè)在下 cat file1 files2 >file3
- 一個(gè)在左一個(gè)在右 paste file1 file2 >file3
- cat file1 >> file2
第三:一個(gè)文件去掉重復(fù)行
- sort file | uniq 把重復(fù)的行合并為一行
- sort file | uniq -u 把重復(fù)的行刪除击困,僅保留非重復(fù)的行