Linux的uniq命令詳解

2021-06-21 14:36:36 字數 2614 閱讀 4701

linux命令uniq的作用是過濾重複部分顯示檔案內容,這個命令讀取輸入檔案,並比較相鄰的行。在正常情況下,第二個及以後更多個重複行將被刪去,行比較是根據所用字符集的排序序列進行的。該命令加工後的結果寫到輸出檔案中。輸入檔案和輸出檔案必須不同。如果輸入檔案用「- 」表示,則從標準輸入讀取。

uniq [選項] 檔案

說明:這個命令讀取輸入檔案,並比較相鄰的行。在正常情況下,第二個及以後更多個重複行將被刪去,行比較是根據所用字符集的排序序列進行的。該命令加工後的結果寫到輸出檔案中。輸入檔案和輸出檔案必須不同。如果輸入檔案用「- 」表示,則從標準輸入讀取。

該命令各選項含義如下:、

– c 顯示輸出中,在每行行首加上本行在檔案中出現的次數。它可取代- u和- d選項。

– d 只顯示重複行。

– u 只顯示檔案中不重複的各行。

– n 前n個字段與每個欄位前的空白一起被忽略。乙個欄位是乙個非空格、非製表符的字串,彼此由製表符和空格隔開(欄位從0開始編號)。

+n 前n個字元被忽略,之前的字元被跳過(字元從0開始編號)。

– f n 與- n相同,這裡n是字段數。

– s n 與+n相同,這裡n是字元數。

接下來通過實踐例項說明:

****************************************===

[root@stu100 ~]# cat test

boy took bat home

boy took bat home

girl took bat home

boy took bat home

boy took bat home

dog brought hat home

dog brought hat home

dog brought hat home

看test檔案的內容

****************************************====

[root@stu100 ~]# uniq test

boy took bat home

girl took bat home

boy took bat home

dog brought hat home

uniq命令不加任何引數,僅顯示連續重複的行一次

****************************************====

[root@stu100 ~]# uniq -c test

2 boy took bat home

1 girl took bat home

2 boy took bat home

3 dog brought hat home

1

-c 引數顯示檔案中每行連續出現的次數。

****************************************====

[root@stu100 ~]# cat test |sort | uniq -c

14 boy took bat home

3 dog brought hat home

1 girl took bat home

排序後再顯示

****************************************====

[root@stu100 ~]# uniq -d test

boy took bat home

boy took bat home

dog brought hat home

-d選項僅顯示檔案中連續重複出現的行。

****************************************====

[root@stu100 ~]# uniq -u test

girl took bat home

-u選項顯示檔案中沒有連續出現的行。

****************************************====

[root@stu100 ~]# uniq -f 2 -s 2 test

boy took bat home

忽略每行的前2個字段,忽略第二 個空白字元和第三個欄位的首字元,結果at home

****************************************====

[root@stu100 ~]# uniq -f 1 test

boy took bat home

dog brought hat home

忽 略每行的第乙個字段,這樣boy ,girl開頭的行看起來是連續重複的行。

****************************************====

[root@stu100 ~]# uniq -d test

boy took bat home

boy took bat home

boy took bat home

boy took bat home

dog brought hat home

dog brought hat home

dog brought hat home

顯示所有重複的行,每個重複的行都顯示

原文:

Linux命令詳解 Uniq

本次我們來學習一下uniq shell 命令,wiki見這裡 wiki的結果比較簡單,我們可以直接在系統上先man一下看下結果 uniq report or omit repeated lines 這個摘要很有一下,注意是report or omit,也就是說既能顯示某些資訊,也能忽略某些資訊,後者...

Linux的uniq命令詳解

uniq命令可以去除排序過的檔案中的重複行,因此uniq經常和sort合用。也就是說,為了使uniq起作用,所有的重複行必須是相鄰的。選項與引數 i 忽略大小寫字元的不同 c 進行計數 u 只顯示唯一的行 d 只顯示重複的行 排序後刪除重複的行 cat words sort uniq 排序之後刪除了...

linux之uniq 命令詳解

linux uniq 命令用於檢查及刪除文字檔案中重複出現的行列,一般與 sort 命令結合使用。uniq 可檢查文字檔案中重複出現的行列。語法 uniq cdu f 字段 s 字元位置 w 字元位置 help version 輸入檔案 輸出檔案 引數 檔案testfile中第 2 3 5 6 7 ...