2015-10-11 41 views
0

我有一個相當大的文件,像這樣的線路:(^ I代表選項卡,$結束線)逆轉子虛烏有場UNIX排序

2^IElaeocarpus williamsianus^I48$ 
4^I$ 
6^I$ 
8^I$ 
10^I$ 
12^I$ 
14^IElaeocarpus hookerianus^I73$ 
16^IElaeocarpus kirtonii^I111$ 
20^I$ 
22^ITetratheca juncea^I66$ 
42^IMalagasy giant rat^I401$ 

,我想的線,所以排序那些在第3場(第2選項卡後,即)次數最多的是第一位的,即

42^IMalagasy giant rat^I401$ 
16^IElaeocarpus kirtonii^I111$ 
14^IElaeocarpus hookerianus^I73$ 
22^ITetratheca juncea^I66$ 
2^IElaeocarpus williamsianus^I48$ 
4^I$ 
6^I$ 
8^I$ 
10^I$ 
12^I$ 
20^I$ 

(我不關心線在外地沒有3級)。所以我假設下面的東西會工作

sort -r -t $'\t' -k 3,3n myfile 

但它沒有(GNU排序,OS X 10.9)。我覺得我很愚蠢。什麼是正確的咒語?

回答

1

您需要爲-k參數添加修飾符,而不是命令行參數。 因此,一些在這些行應該做的伎倆:

sort -t $'\t' -k 3,3nr myfile 
+0

正是我所錯過的。 *謝謝*。 – user2667066

0

看來,這不是n你想要什麼,但g

sort -t $'\t' test.txt -k 3.2gr 

點指定開始比較的字符的關鍵字。

正如favoretti指出的那樣,你想要扭轉的是該列,所以你在那裏應用修飾符。