sort -u和uniq -u的意外差异

时间:2012-11-29 10:36:46

标签: linux sorting uniq

案例:列出目录中的所有唯一文件名。

$ ls 
a.h  a.i  b.h  b.i  c.h  d.i

因此cd在这种情况下是唯一的。对于固定宽度,我们可以这样做:

$ ls | uniq -w1 -u
c.h
d.i

虽然文件名不是固定宽度,但uniq只能跳过字段(即从左到右,从左到右忽略字段),但不是很有帮助。

ls | sort -u -t. -k1,1
a.h
b.h
c.h
d.i

我认为sort -u相当于uniq -u ref并且sort能够排序和我预期的给定字段输出为c.hd.i但不是。

有什么想法吗?

注意:我不需要帮助解决问题,例如一个解决方案只是反转数据两次:

$ ls | rev | uniq -u -s1 | rev
c.h
d.i

1 个答案:

答案 0 :(得分:2)

sort -u相当于sort | uniq,即没有给出uniq的标记。