Command-Line
sort -u 和 uniq -u 的區別
直到現在,我一直在使用
sort -u
擺脫重複項。但我對軟體工俱生成的列表有真正的疑問。
問題是:輸出是否
sort -u |wc
與 相同uniq -u |wc
?因為它們不會產生相同的結果。手冊
uniq
規定:-u, –unique 只列印唯一的行
我的輸出由 1110 個單片語成,其中
sort -u
保留了 1020 行和uniq -u 1110
正確的數量。問題是我無法直覺地發現通過>
在命令行末尾使用生成的列表中的任何重複項,並且總破解密碼存在問題(在自定義開膛手 john 的上下文中)。
不,它們不一樣。一方面,
sort
首先對列表進行排序;其次,uniq -u
僅列印在每次給定執行中“唯一”的那些行,即在它們之前或之後沒有相同輸入行的那些行。$ printf "%s\n" 3 3 2 1 2 | sort -u 1 2 3 $ printf "%s\n" 3 3 2 1 2 | uniq -u 2 1 2
也可以看看: