我有一个包含超过一千个条目的大型数据文件。我想对它们进行排序,但保留原始行号。例如,
1:100
2:120
3:10
4:59
其中第一个数字是行号,未保存在数据文件中,用冒号与实数分隔。我想对它进行排序,并将行号绑定到其原始行,输出为:
2:120
1:100
4:59
3:10
如果可能,我想在不创建其他文件的情况下执行此操作,并且手动编号不是我正在使用的数据大小的选项。
答案 0 :(得分:2)
给定文件test.dat
:
100
120
10
59
......命令:
$ cat -n test.dat | sort --key=2 -nr
2 120
1 100
4 59
3 10
...给出您似乎正在寻找的输出(尽管使用制表符分隔的字段,如果需要可以轻松更改):
$ cat -n test.dat | sort --key=2 -nr | sed -e's/\t/:/'
2:120
1:100
4:59
3:10