1

我有一个包含一千多个条目的大型数据文件。我想对它们进行排序,但保留原始行号。例如,

1:100
2:120
3:10
4:59

其中第一个数字是行号,不保存在数据文件中,与实数用冒号分隔。我想对其进行排序并将行号绑定到其原始行,输出为:

2:120
1:100
4:59
3:10

如果可能的话,我想在不创建另一个文件的情况下执行此操作,并且手动编号不是我正在使用的数据大小的选项。

4

1 回答 1

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
于 2013-09-01T05:22:05.430 回答