我有一个文件 tmp.txt(实际上是 bash 命令的输出),其中包含以下条目:
...
ammp 0 1.03683
ammp 10 2.69954
ammp 1 1.05712
ammp 11 2.70339
ammp 12 2.70339
ammp 2 1.88586
ammp 3 2.50103
ammp 4 2.64734
ammp 5 2.67462
ammp 6 2.68097
ammp 7 2.68631
ammp 8 2.6904
ammp 9 2.69517
applu 0 0.678798
applu 10 0.922213
applu 1 0.901234
applu 11 0.923596
applu 12 0.923596
applu 2 0.901657
applu 3 0.903176
applu 4 0.908912
applu 5 0.913879
applu 6 0.914885
applu 7 0.915516
applu 8 0.917368
applu 9 0.920753
apsi 0 1.09037
apsi 10 2.20494
apsi 1 1.16651
apsi 11 2.24381
apsi 12 2.24381
apsi 2 1.49532
apsi 3 1.79137
apsi 4 1.79581
apsi 5 1.79601
apsi 6 1.80062
apsi 7 1.91269
apsi 8 1.9579
apsi 9 2.00872
...
我想根据第一个字段然后第二个字段对其进行排序。问题是我想要第一个字段的字典排序和第二个字段的数字。
我尝试了以下方法:
cat tmp.txt | sort -k1,2
按字典顺序对两个字段进行排序
cat tmp.txt | sort -k1 | sort -n -k2
第二种弄乱了第一种。
cat tmp.txt | sort -s -k1.2n
据说是稳定的排序,它以数字方式执行第二个字段。不起作用,并按字典顺序对第二个字段进行排序...
想法??