Redhat linux,要排序的文件-“ aaa”:
4; AAA; 456
3; BBB; 567
2; AAA; 123
1; BBB; 234
5; AAA; 000
仅按第二个字段排序-命令:
排序-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
排序错误?
答案 0 :(得分:2)
可能还有其他原因,但是我想这是您的“意见”,因为您认为对于具有相同键的记录,在文件中最先遇到的那个应该在输出中最先出现。
这被称为“ 稳定排序”。
稳定排序可能需要更多的工作,并且在大多数情况下不需要这样做,因此默认情况下sort命令不会执行此操作。因此,您看到的结果。
如果您愿意,它可以做到:
$ sort --stable --field-separator=";" --key="2,2" aaa
4;AAA;456
2;AAA;123
5;AAA;000
3;BBB;567
1;BBB;234