Uniq

uniq 怎麼不夠獨特以至於還有 uniq –unique?

  • June 18, 2015

以下是來自pastebin的隨機文件的命令:

wget -qO - http://pastebin.com/0cSPs9LR | wc -l
350
wget -qO - http://pastebin.com/0cSPs9LR | sort -u | wc -l
287
wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq | wc -l
287
wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq -u | wc -l
258

手冊頁不清楚-u標誌在做什麼。有什麼建議嗎?

uniqwith-u跳過任何有重複的行。因此:

$ printf "%s\n" 1 1 2 3 | uniq
1
2
3
$ printf "%s\n" 1 1 2 3 | uniq -u
2
3

通常,uniq最多列印一次(假設輸入已排序)。這個選項實際上列印了真正獨特的行(沒有再次出現)。

簡潔版本:

  • uniq, 沒有, 使輸出-u的每一行都是唯一的。
  • uniq -u僅列印input 中的每個唯一行。

稍長的版本:

uniq用於處理具有重複行的文件,並且僅當這些行連續出現在輸入中時。因此,就其目的而言,唯一行是不會立即複製的行。

uniq具有非常有限的短期記憶;它永遠不會記住一行是否出現在輸入的前面,除非它是前一行——這就是為什麼uniq經常與sort.)

當遇到一連串重複的行時uniq,不帶-uarg 的 列印該行的一個副本。(它使輸出的每一行都是唯一的)。

使用該-u參數,它會列印該行的個副本——重複的執行只會從輸出中省略。

引用自:https://unix.stackexchange.com/questions/210528