顯示或忽略重復的行。
uniq [OPTION]... [INPUT [OUTPUT]]
-c, --count 在每行開頭增加重復次數。
-d, --repeated 所有鄰近的重復行只被打印一次。
-D 所有鄰近的重復行將全部打印。
--all-repeated[=METHOD] 類似于 -D,但允許每組之間以空行分割。METHOD取值范圍{none(默認),prepend,separate}。
-f, --skip-fields=N 跳過對前N個列的比較。
--group[=METHOD] 顯示所有行,允許每組之間以空行分割。METHOD取值范圍:{separate(默認),prepend,append,both}。
-i, --ignore-case 忽略大小寫的差異。
-s, --skip-chars=N 跳過對前N個字符的比較。
-u, --unique 只打印非鄰近的重復行。
-z, --zero-terminated 設置行終止符為NUL(空),而不是換行符。
-w, --check-chars=N 只對每行前N個字符進行比較。
--help 顯示幫助信息并退出。
--version 顯示版本信息并退出。
INPUT(可選):輸入文件,不提供時為標準輸入。
OUTPUT(可選):輸出文件,不提供時為標準輸出。
返回0表示成功,返回非0值表示失敗。
注意:命令2和命令3結果一樣,命令1僅作了相鄰行的去重。
uniq file.txt
sort file.txt | uniq
sort -u file.txt
只顯示單一行,區別在于是否執行排序:
uniq -u file.txt
sort file.txt | uniq -u
統計各行在文件中出現的次數:
sort file.txt | uniq -c
在文件中找出重復的行:
sort file.txt | uniq -d
uniq
只檢測鄰近的行是否重復,sort -u
將輸入文件先排序然后再處理重復行。
該命令是GNU coreutils
包中的命令,相關的幫助信息請查看man -s 1 uniq
,info coreutils 'uniq invocation'
。