用於去除有序檔案中的重複行並將結果輸出到標準輸出。為了使uniq 起作用,所有的重複行必須是相鄰的,所以 uniq 經常和 sort 合用。
uniq [option]... [input [output]]
-c, --count
顯示行出現的次數
-d, --repeated
僅顯示重複出現的行,即出現次數 >=2 的行,且只列印一次
-d, --all-repeated[=delimit-method]
僅顯示重複的行,即出現次數 >=2 的行,且列印重複行的所有行。其中 delimit-method 表示對重複行集合的分隔方式,有三種取值,分別為none、prepend和separate。其中none表示不進行分隔,為預設選項,uniq -d等同於uniq --all-repeated=none;prepend表示在每乙個重複行集合前面插入乙個空行;separate表示在每個重複行集合間插入乙個空行。
-f, --skip-fields=n
忽略前n個字段。欄位由空白字元(空格符、tab)分隔。如果您的文件的行被編號,並且您希望比較行中除行號之外的所有內容。如果指定了選項 -f 1,那麼下面相鄰的兩行:
1 這是一條線
2 這是一條線
將被認為是相同的。如果沒有指定 -f 1 選項,它們將被認為是不同的
-i, --ignore-case
忽略大小寫字元的不同
-s, --skip-chars=n
跳過前面n個字元不比較
-u, --unique
只顯示唯一的行,即出現次數等於1的行
-w, --check-chars=n
指定每行要比較的前n個字元數
--help
顯示幫助資訊並退出
--version
顯示版本資訊並退出
先構造乙個示例檔案 testfile,其內容如下:
hello
world
friend
hello
world
hello
(1)對無序檔案去重無效。直接刪除未經排序的檔案,將會發現沒有任何行被刪除:
uniq testfile
hello
world
friend
hello
world
hello
(2)uniq 結合 sort 命令,對排序檔案去重。
cat testfile | sort | uniq
friend
hello
world
(3)排序之後刪除了重複行,同時在行首位置輸出該行重複的次數。
#sort testfile | uniq -c
1 friend
3 hello
2 world
(4)僅顯示存在重複的行,並在行首顯示該行重複的次數:
#sort testfile | uniq -dc
3 hello
2 world
(5)僅顯示不重複的行。
sort testfile | uniq -u
friend
(6)僅顯示重複的行,且顯示重複行的所有行。
sort testfile | uniq -d
hello
hello
hello
world
world
(7)uniq 預設是比較相鄰行的所有內容來判斷是否重複,我們可以通過選項-w
或--check-chars=n
指定比較前 n 個字元。比如我們有如下內容的檔案 test.txt:
api
列印前三個字元相同的行:
uniq -w3 -d test.txt
[1] uniq manual
[2] 菜鳥教程.linux uniq命令
[3] linux的 uniq 命令詳解
[4] 為初學者提供的uniq 命令教程及示例
[5] linux uniq command
Linux命令詳解 Uniq
本次我們來學習一下uniq shell 命令,wiki見這裡 wiki的結果比較簡單,我們可以直接在系統上先man一下看下結果 uniq report or omit repeated lines 這個摘要很有一下,注意是report or omit,也就是說既能顯示某些資訊,也能忽略某些資訊,後者...
Linux命令之uniq命令使用詳解
uniq命令可以去除排序過的檔案中的重複行,因此uniq經常和sort合用。也就是說,為了使uniq起作用,所有的重複行必須是相鄰的。語法 uniq cdu f 字段 s 字元位置 w 字元位置 help version 輸入檔案 輸出檔案 補充說明 uniq可檢查文字檔案中重複出現的行列。引數 c...
Linux的uniq命令詳解
linux命令uniq的作用是過濾重複部分顯示檔案內容,這個命令讀取輸入檔案,並比較相鄰的行。在正常情況下,第二個及以後更多個重複行將被刪去,行比較是根據所用字符集的排序序列進行的。該命令加工後的結果寫到輸出檔案中。輸入檔案和輸出檔案必須不同。如果輸入檔案用 表示,則從標準輸入讀取。uniq 選項 ...