Linux排序可以排序混合值列吗?

时间:2018-04-06 06:27:10

标签: linux sorting

我有一个输出这样的程序:

0: test_func()   4x1024     0.2260167
0: test_func()    4x128     0.020995
0: test_func()   4x2048     0.330319
0: test_func()    4x256     0.024929
0: test_func()   4x4096     1.329865
0: test_func()    4x512     0.056119
0: test_func()     4x64     0.004869
0: test_func()   4x8192     3.288312
0: test_func()  16x1024     0.778160
0: test_func()   16x128     0.084252
0: test_func()  16x2048     1.671658
0: test_func()   16x256     0.190282
0: test_func()  16x4096     5.664730
0: test_func()   16x512     0.312114
0: test_func()    16x64     0.036087
0: test_func()  16x8192    12.404933
1: test_func2()    4x64     0.004869

我想按第三列排序,以便输出如下所示:

0: test_func()     4x64     0.004869
0: test_func()    4x128     0.020995
0: test_func()    4x256     0.024929
0: test_func()    4x512     0.056119
0: test_func()   4x1024     0.226016
0: test_func()   4x2048     0.330319
0: test_func()   4x4096     1.329865
0: test_func()   4x8192     3.288312
0: test_func()    16x64     0.036087
0: test_func()   16x128     0.084252
0: test_func()   16x256     0.190282
0: test_func()   16x512     0.312114
0: test_func()  16x1024     0.778160
0: test_func()  16x2048     1.671658
0: test_func()  16x4096     5.664730
0: test_func()  16x8192    12.404933
1: test_func2()    4x64     0.004869

有没有办法对第三列进行排序,以便它首先按递增顺序按第一维排序,然后按递增顺序排序第二维?顺便说一句,我现在使用的排序命令是为了得到我到目前为止得到的结果:

sort -k2,2 -k1,1n -k3,3n

1 个答案:

答案 0 :(得分:0)

这应该对你有用

sort -tx -k1,1r file

我使用x作为字段分隔符

PS:它确实有效,因为0:test_func()出现在每一行