考虑这个片段:
echo '7 a
3 c
3 b
2 first
2 second
2 third
2 fourth
2 fifth
9 d
2 sixth
' | sort -n -k 1
输出为:
2 fifth
2 first
2 fourth
2 second
2 sixth
2 third
3 b
3 c
7 a
9 d
虽然列表按第一个字符的数字键正确排序,但对于那些连续且相等的值,原始顺序也已打乱。我想获得:
2 first
2 second
2 third
2 fourth
2 fifth
2 sixth
3 c
3 b
7 a
9 d
这可能与 sort
相关吗?如果没有,使用 shell 工具实现这种排序的最简单方法是什么?
最佳答案
只需添加 -s
(稳定排序)标志,这将禁用最后的比较手段
echo '7 a
3 c
3 b
2 first
2 second
2 third
2 fourth
2 fifth
9 d
2 sixth
' | sort -k 1,1n -s
2 first
2 second
2 third
2 fourth
2 fifth
2 sixth
3 c
3 b
7 a
9 d
关于linux - 如果 coreutils 排序中的数值相等,是否保留原始顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19871321/