我有一个文件a.dat如下。
1 0.246102 21 1 0.0408359 0.00357267
2 0.234548 21 2 0.0401056 0.00264361
3 0.295771 21 3 0.0388905 0.00305116
4 0.190543 21 4 0.0371858 0.00427217
5 0.160047 21 5 0.0349674 0.00713894
我想根据第二列中的值对文件进行排序。即输出应该看起来像
5 0.160047 21 5 0.0349674 0.00713894
4 0.190543 21 4 0.0371858 0.00427217
2 0.234548 21 2 0.0401056 0.00264361
1 0.246102 21 1 0.0408359 0.00357267
3 0.295771 21 3 0.0388905 0.00305116
如何使用命令行执行此操作?我读到sort命令可以用于此目的。但我无法弄清楚如何使用sort命令。
答案 0 :(得分:2)
使用sort -k
表示您要使用的列:
$ sort -k2 file
5 0.160047 21 5 0.0349674 0.00713894
4 0.190543 21 4 0.0371858 0.00427217
2 0.234548 21 2 0.0401056 0.00264361
1 0.246102 21 1 0.0408359 0.00357267
3 0.295771 21 3 0.0388905 0.00305116
这就是这种情况。
对于将来的参考,请注意(作为indicated by 1_CR),您还可以指出要与sort -k2,2
(仅使用第2列)或sort -k2,5
(从2到2)使用的列范围5)等。
答案 1 :(得分:1)
请注意,您需要指定要排序的开始和结束字段(在这种情况下为2
和2
),如果您需要数字排序,请添加n
。
sort -k2,2n file.txt