【发布时间】:2012-11-29 10:36:45
【问题描述】:
案例:列出目录中所有唯一的文件名。
$ 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 和@ 987654332@ 但不是。
有什么想法吗?
注意:我不需要帮助来解决问题,例如一种解决方案是将数据反转两次:
$ ls | rev | uniq -u -s1 | rev
c.h
d.i
【问题讨论】: