uniq

顯示或忽略重複的行。

概要

1uniq [OPTION]... [INPUT [OUTPUT]]

主要用途

  • 將輸入文件(或標準輸入)中鄰近的重複行寫入到輸出文件(或標準輸出)中。
  • 當沒有選項時,鄰近的重複行將合併爲一個。

選項

 1-c, --count                在每行開頭增加重複次數。
 2-d, --repeated             所有鄰近的重複行只被打印一次。
 3-D                         所有鄰近的重複行將全部打印。
 4--all-repeated[=METHOD]    類似於 -D,但允許每組之間以空行分割。METHOD取值範圍{none(默認),prepend,separate} 5-f, --skip-fields=N        跳過對前N個列的比較。
 6--group[=METHOD]           顯示所有行,允許每組之間以空行分割。METHOD取值範圍:{separate(默認),prepend,append,both} 7-i, --ignore-case          忽略大小寫的差異。
 8-s, --skip-chars=N         跳過對前N個字符的比較。
 9-u, --unique               只打印非鄰近的重複行。
10-z, --zero-terminated      設置行終止符爲NUL(空),而不是換行符。
11-w, --check-chars=N        只對每行前N個字符進行比較。
12--help                     顯示幫助信息並退出。
13--version                  顯示版本信息並退出。

參數

INPUT(可選):輸入文件,不提供時爲標準輸入。

OUTPUT(可選):輸出文件,不提供時爲標準輸出。

返回值

返回0表示成功,返回非0值表示失敗。

例子

注意:命令2和命令3結果一樣,命令1僅作了相鄰行的去重。

1uniq file.txt
2sort file.txt | uniq
3sort -u file.txt

只顯示單一行,區別在於是否執行排序:

1uniq -u file.txt
2sort file.txt | uniq -u

統計各行在文件中出現的次數:

1sort file.txt | uniq -c

在文件中找出重複的行:

1sort file.txt | uniq -d

注意

  1. uniq只檢測鄰近的行是否重複,sort -u將輸入文件先排序然後再處理重複行。

  2. 該命令是GNU coreutils包中的命令,相關的幫助信息請查看man -s 1 uniqinfo coreutils 'uniq invocation'

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: