我想知道在Unix中使用sort -d命令。
它将根据字典顺序进行排序,但当我检查输入时,我没有得到它的工作方式。
The input is:
| hi
|hi
| hello
|hello
| hello
output:
|hello
| hello
| hello
|hi
| hi
有人可以用例子清楚地解释我。 在此先感谢!!!!!!
答案 0 :(得分:0)
所有它正在按字典顺序进行排序,它假定因为在某些之前有空格/制表符,它们在原始之后没有填充。
不确定问题究竟是什么,但希望有所帮助。
答案 1 :(得分:0)
字典顺序在某种意义上说,它忽略了所有不是字母数字的字符。简单示例是一个文件列表,其中一些文件以./
为前缀。如果您使用非POSIX LANG(例如,我使用的是en_US.UTF-8),则排序无法正常工作,因为它似乎始终如同指定-d一样。所以很可能,你没有看到在你的系统上使用-d和省略它之间的区别
如果将LANG环境设置为“C”(LC_ALL也可以正常工作),它将按预期工作。
文件中的订单:
~ » echo $LANG
en_US.UTF-8
~ » cat to_sort.txt
b
./a
./c
然后排序-d
~ » sort -d to_sort.txt
./a
b
./c
与没有-d
相同~ » sort to_sort.txt
./a
b
./c
带有POSIX语言的默认值与预期一致:
~ » LANG=C sort to_sort.txt
./a
./c
b
~ »
和-d也适用:
~ » LANG=C sort -d to_sort.txt
./a
b
./c