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 選項 ...