Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux sort-u和uniq-u的意外差异_Linux_Sorting_Uniq - Fatal编程技术网

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