Redhat linux,要排序的文件- "aaa":
4;AAA;456
3;BBB;567
2;AAA;123
1;BBB;234
5;AAA;000
仅按第二个字段排序-命令:
sort -t ";“-k2,2 aaa
输出为:
2;AAA;123
4;AAA;456
5;AAA;000
1;BBB;234
3;BBB;567
在我看来,输出应该是:
4;AAA;456
2;AAA;123
5;AAA;000
3;BBB;567
1;BBB;234
排序时出错?
发布于 2019-01-11 22:57:50
可能还有其他原因,但我猜这是您的“观点”,因为您认为对于具有相同键的记录,首先在文件中遇到的应该是输出中的第一个。
这就是所谓的“稳定排序”。
稳定的排序可能需要更多的工作,而且在大多数情况下不是必需的,因此默认情况下排序命令不会执行此操作。这就是你看到的结果。
但是,如果你想这样做,它可以做到:
$ sort --stable --field-separator=";" --key="2,2" aaa
4;AAA;456
2;AAA;123
5;AAA;000
3;BBB;567
1;BBB;234https://stackoverflow.com/questions/54148736
复制相似问题