uniq命令的用法

2022-08-03 01:21:10 字數 3685 閱讀 3376

uniq用法

u n i q

用來從乙個文字檔案中去除或禁止重複行。一般

u n i q

假定檔案已分類,並且結果正確。

我們並不強制要求這樣做,如果願意,可以使用任何非排序文字,甚至是無規律行。

可以認為

u n i q

有點像s o r t

命令中唯一性選項。對,在某種程度上講正是如此,但兩者有乙個重要區別。

s o r t

的唯一性選項去除所有重複行,而

u n i q

命令並不這樣做。重複行是什麼?在

u n i q

裡意即持續不斷重複出現的行,中間不夾雜任何其他文字,現舉例如下:

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$ cat

myfile.txt

may day

may day

may day

going down

may day

may day.

may day

u n i q

將前三個

mayday

看作重複副本,但是因為第

4行有不同的文字,故並不認為第五行持續的

may day

為其副本。

u n i q

將保留這一行。

命令一般格式:

[copy to clipboard]

[ - ]

code:

$uniq -u d c -f

input-file out-file

quote:

其選項含義:

-u 只顯示不重複行。

-d 只顯示有重複資料行,每種重複行只顯示其中一行

-c 列印每一重複行出現次數。

-f n

為數字,前

n個域被忽略。

一些系統不識別

- f選項,這時替代使用

- n。

建立檔案

m y f i l e . t x t

,在此檔案上執行

u n i q

命令。[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$

uniq myfile.txt

may day

going down

may day

may day.

may day

注意第5

行保留下來,其文字為最後一行

may day

。如果執行

sort -u

,將只返回

may day

和going down

連續重複出現

使用- c

選項顯示行數,即每個重複行數目。本例中,行

mayday

重複出現三次

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$

uniq -c myfile.txt

3 may day

1 going down

1 may day

1 may day.

1 may day

1.不唯一

使用- d

顯示重複出現的不唯一行:

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$

uniq -d myfile.txt

may day

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$

uniq -u myfile.txt

going down

may day

may day.

2.對特定域進行測試

使用- n

只測試一行一部分的唯一性。例如

- 5意即測試第

5域後各域唯一性。域從

1開始記數。

如果忽略第

1域,只測試第

2域唯一性,使用

- n2

,下述檔案包含一組資料,其中第

2域代表組**。

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$ cat

parts.txt

ak123 opp y13

dk122 opp y24

ek999 opp m2

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$ cat

parts.txt

ak123 33 46 6u opp ty yu

dk122 5h 67 y8 opp ty yu

ek999 56 56 78 iiy ty yu

執行u n i q

,將返回所有行。因為這個檔案每一行都不同。

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$ cat

parts.txt

1 ak123 33 46 6u opp ty yu

1 dk122 5h 67 y8 opp ty yu

1 ek999 56 56 78 iiy ty yu

如果指定測試在第

4域後,結果就會不同。

u n i q

會比較三個相同的

o pp

,因此將返回一行。

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$

uniq -f4 -c parts.txt

2 ak123 33 46 6u opp ty yu

1 ek999 56 56 78 iiy ty yu

指定第5

域,即從第

6域開始比較:

[copy to clipboard]

[ - ]

code:

[sam@chenwy sam]$

uniq -f5 -c parts.txt

3 ak123 33 46 6u opp ty yu

如果『- f』

返回錯誤,替代

-n使用:

uniq和sort的用法

uniq和sort都是按行操作的linux命令。sort按文字行排序,如下所示的log檔案 直接sort log即可將其排序。容易忽略的是sort n命令,在如下例子中將看到 如果直接sort則會返回下圖所示的內容,這是因為sort將所有的東東都當做字元處理4比1 2 3都大,比較結束。n選項可以解...

命令uniq的使用

uniq命令可以將重複行從輸出檔案中刪除 語法 uniq 選項 檔案 選項說明 c 顯示輸出中,每行行首加上本行在檔案中出現的次數 d 只顯示重複行 u 只顯示檔案中不重複的行 n 前n個字段和每個欄位前的空白一起被忽略 n 前n個字元被忽略 假設現在有個檔案file2位於 home test目錄下...

Linux的uniq命令詳解

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