1. 程式人生 > >Linux常用命令(三): uniq

Linux常用命令(三): uniq

Linux uniq命令用於檢查及刪除文字檔案中重複出現的行列。

uniq可檢查文字檔案中重複出現的行列。

語法

uniq [-cdu][-f<欄位>][-s<字元位置>][-w<字元位置>][--help][--version][輸入檔案][輸出檔案]

引數

  • -c或--count 在每列旁邊顯示該行重複出現的次數。
  • -d或--repeated 僅顯示重複出現的行列。
  • -f<欄位>或--skip-fields=<欄位> 忽略比較指定的欄位。
  • -s<字元位置>或--skip-chars=<字元位置> 忽略比較指定的字元。
  • -u或--unique 僅顯示出一次的行列。
  • -w<字元位置>或--check-chars=<字元位置> 指定要比較的字元。
  • --help 顯示幫助。
  • --version 顯示版本資訊。
  • [輸入檔案] 指定已排序好的文字檔案。
  • [輸出檔案] 指定輸出的檔案。

例項

檔案testfile中第2 行、第5 行、第9 行為相同的行,使用uniq 命令刪除重複的行,可使用以下命令:

uniq testfile 

testfile中的原有內容為:

$ cat testfile      #原有內容  
test 30  
test 30  
test 30  
Hello 95  
Hello 95  
Hello 95  
Hello 95  
Linux 85  
Linux 85 

備註:以下命令並不會刪除檔案中的任何內容,只是在命令執行後的輸出結果中刪除重複的行,且如果重複的行不是連續的,會認為非重複行!

1,使用uniq 命令刪除重複的行後,有如下輸出結果:

$ uniq testfile     #刪除重複行後的內容  
test 30  
Hello 95  
Linux 85 

2,檢查檔案並輸出,輸出時刪除檔案中重複出現的行,並在行首顯示該行重複出現的次數。使用如下命令:
uniq-c testfile 

結果輸出如下:

$ uniq-ctestfile      #刪除重複行後的內容  
3 test 30             #前面的數字的意義為該行共出現了3次  
4 Hello 95            #前面的數字的意義為該行共出現了4次  
2 Linux 85            #前面的數字的意義為該行共出現了2次