Linux sort-u和uniq-u的意外差异
案例:列出目录中所有唯一的文件名Linux sort-u和uniq-u的意外差异,linux,sorting,uniq,Linux,Sorting,Uniq,案例:列出目录中所有唯一的文件名 $ ls a.h a.i b.h b.i c.h d.i 因此,在这种情况下,c和d是唯一的。对于固定宽度,我们可以执行以下操作: $ ls | uniq -w1 -u c.h d.i 这不是很有帮助,因为文件名的宽度不是固定的,uniq只能跳过字段(即从左到右而不是从右到左忽略字段) 我认为sort-u相当于uniq-u(),并且sort能够对给定字段进行排序,我希望输出是c.h和d.I,但事实并非如此 有什么想法吗 注意:我不需要帮助解决问题
$ ls
a.h a.i b.h b.i c.h d.i
因此,在这种情况下,c
和d
是唯一的。对于固定宽度,我们可以执行以下操作:
$ ls | uniq -w1 -u
c.h
d.i
这不是很有帮助,因为文件名的宽度不是固定的,uniq
只能跳过字段(即从左到右而不是从右到左忽略字段)
我认为sort-u
相当于uniq-u
(),并且sort
能够对给定字段进行排序,我希望输出是c.h
和d.I
,但事实并非如此
有什么想法吗
注意:我不需要帮助解决问题,例如,一种解决方案是将数据反转两次:
sort-u
相当于sort | uniq
,即未给出uniq
的标志。或者换句话说:uniq
仅在输入已排序的情况下才能正常工作
ls | sort -u -t. -k1,1
a.h
b.h
c.h
d.i
$ ls | rev | uniq -u -s1 | rev
c.h
d.i