Linux 命令(7) uniq 命令

2021-07-30 13:51:31 字數 2170 閱讀 2599

用於去除有序檔案中的重複行並將結果輸出到標準輸出。為了使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 選項 ...