[英]Unix: How to sort a dat file and keep original line numbers
我有一個包含一千多個條目的大數據文件。 我想對它們進行排序,但保留原始行號。 例如,
1:100
2:120
3:10
4:59
其中第一個數字是未保存在數據文件中的行號,與實數之間用冒號分隔。 我想對其進行排序,並使行號綁定到其原始行,並輸出:
2:120
1:100
4:59
3:10
如果可能的話,我希望不創建另一個文件就這樣做,並且手動編號不是我正在使用的數據大小的選項。
給定一個文件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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.