2015-09-28 64 views
-1

我需要根據第二列(這是一個不是字符串的數字)對所有名稱以.txt結尾的文件進行遞減排序。所有文件都有兩個整數列,我需要排序才能在相同的文件上生效。按第2列遞減排序多個文件

例如,假設FILE1.TXT包含

1   33 
2   55 
3   22 

和FILE2.TXT包含

10   133 
2    551 
30   2200 

我需要處理兩個* .txt文件shell命令(在現實中我有數百它們)並影響它們如下:

FILE1.TXT變爲:

2   55 
1   33 
3   22 

FILE2.TXT變爲:

30   2200 
2    551 
10   133 
+0

'sort -k2n * .txt'? –

+0

@ jonathan-leffler謝謝,但(1)順序在這裏增加,我需要它減少和(2)我需要命令將排序的數據保存在相同的文件(即覆蓋舊文件)。這可能嗎? – rak

+1

'用於* .txt中的文件;做排序-k2nr -o「$ file」「$ file」; done'按相反順序對每個文件進行排序,並且(安全地)覆蓋每個單獨的原始文件。 –

回答

0
作爲

在評論指出:

for file in *.txt; do sort -k2nr -o "$file" "$file"; done 

在反向數字順序排序-k2nr上場2。輸入文件名之後的-o選項(這裏是唯一的輸入文件名)安全地覆蓋具有排序輸出的文件。