我有一个带有这些内容的制表符分隔文件:
1 C45874154 22.8221295411
2 C56931350 -121.889340344
3 C22240035 NON
4 C12541514 -232.106357553
5 C40783672 87.7466539197
如何根据第三列中的值(从最低值到第三列中的最高值)对包含3列的行进行排序?
我知道如何使用以下方法对一列进行排序:
sort -n -k 3 file
但我不知道如何将3列组合在一起得到这样的输出:
4 C12541514 -232.106357553
2 C56931350 -121.889340344
1 C45874154 22.8221295411
5 C40783672 87.7466539197
3 C22240035 NON
提前致谢,
答案 0 :(得分:1)
尝试sort -nk3 -k2,1 aaa
(我将您的示例文本命名为aaa
)。也就是说,在数字上按第三列排序。然后,按字母顺序对第二列和第一列进行排序。有意义吗?
$ cat -v aaa
1 C45874154 22.8221295411
2 C56931350 -121.889340344
3 C22240035 NON
4 C12541514 -232.106357553
5 C40783672 87.7466539197
$ sort -nk3 -k2,1 aaa
4 C12541514 -232.106357553
2 C56931350 -121.889340344
3 C22240035 NON
1 C45874154 22.8221295411
5 C40783672 87.7466539197