1

1,000 を超えるエントリを含む大きなデータ ファイルがあります。それらを並べ替えたいのですが、元の行番号を維持します。例えば、

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 に答える