案例:列出目录中所有唯一的文件名。
$ ls
a.h a.i b.h b.i c.h d.i
所以c
和d
在这种情况下是独一无二的。对于固定宽度,我们可以这样做:
$ 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.h
, d.i
但事实并非如此。
有什么想法吗?
注意:我不需要帮助来解决问题,例如一种解决方案是将数据反转两次:
$ ls | rev | uniq -u -s1 | rev
c.h
d.i