UNIX 指令 - uniq

【功能】

去除檔案相同的行(須相鄰)

【語法】

uniq [-udc [+n][-n ]] [input [output ]]

【說明】

uniq 指令會讀取 input 檔案的內容,若發現有相鄰的相同行,則只輸出一次,使資料的重複性減低。若是二個相同行中間被其他的行分隔的話,uniq 指令將不會處理而視為二個獨立的行。因此,若要將檔案重複的行減到最少,應先使用 sort 指令排序後再使用 uniq 指令。

引數 input 及 output 在使用時,不可有相同的名稱,省略 output 檔名時會以標準輸出印出結果,若是 input 也省略時,則從標準輸入讀取資料。

【選項】

選 項 說 明
-u 只輸出那些行沒有重複,是唯一的行。
-d 只輸出那些行有重複,而不輸出沒有重複的行(uniq 指令的預設值是使用 -ud 選項,將沒有重複及重複性的行各印出一次)。
-c(count) 要求 uniq 指令計算出每行重複的次數,印在每行的前端,最少是一次。
-n 在找尋相同的行時,會先跳過每行前端 n個欄位。欄位是由空白字元或跳格字元所分隔。
+n >

在找尋相同的行時,先跳過每行前端 n 個字元。

+n、-n 可同時使用,以指定從那裏開始比較,欄位的指定會先處理,然後才是處理指定的字元位置,例如 '-3+6' 表示先跳過 3個欄位後,再跳過 6 個字元才是開始比對的位置。

【範例】

1. 刪除檔案中重複的行:

uniq namecard namecard.new

在 namecard 中若有重複的連續行,則只輸出一次到 namecard.new 這檔案中。

2. 找出檔案中有那幾行相同:

uniq -d namecard

輸出的結果將指出有那些行是重複的。

3. 指定開始比較的欄位:

uniq -4 namecard

在比對時,每行會先跳過前面4欄,也就是從第5欄開始比較資料。

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