簡體   English   中英

Unix:如何對dat文件進行排序並保留原始行號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM