UNIX 指令 - comm

【功能】

對兩個已排序的文字檔進行比較

【語法】

comm [-[123]] file1 file2

【說明】

comm 指令會去讀取這二個檔案(這二個檔案的內容須已被排序過,如使用 sort 指令排序後的結果),然後會有三欄式的結果印出。

第一欄指出檔案 file1 才有的行。
第二欄指出檔案 file2 才有的行。
第三欄則指出檔案file1、file2 共有的行,而這些輸出的結果可用選項來控制是否要印出。

若檔案 file1 是 '-' 字元時,則從標準輸入讀取資料。

【選項】

選 項 說 明
-1 省略第一欄的輸出。
-2 省略第二欄的輸出。
-3 省略第三欄的輸出。

★註:-1、-2、-3 的選項可合併使用,如 -12 表示取消第 1、2 欄,只輸出第 3 欄為 file1、file2 都有的行。

【範例】

檔案 version1 的內容 檔案 version2 的內容
aback aback
abacus abandon
abandoned abandoned
abase abase
abash abash
abatoir abate
abbess abatoir
abbey abbey

 

1. 比較二個排序過的文字檔資料:

$ comm version1 version2
aback
abacus
abandon
abandoned
abase
abash
abate
abatoir
abbess
abbey

輸出的結果我們可看出那些行是只存在檔案 version1 中的行,如最左邊的欄位 'abacus'、'abbess',接著中間那一欄是只存在檔案 version2中的行,例如 'abandon'、'abate',而最右邊欄位則是二個檔案都有的行。

2. 只將二檔案都有的行印出:

$ comm -12 version1 version2
aback
abandoned
abase
abash
abatoir
abbey

使用 -12 選項可省略第 1、2 欄的輸出,只剩下第 3 欄是 2 個檔案共有的欄位,因此會將檔案 version1、version2 中有相同的行印出。

網路電視    旅遊景點    算命    象棋殘局    回首頁