2012-10-20 48 views
2

我只想按照編號順序排列第二列第二個字符的文件。 這樣的示例文件:linux在列內排序

aa 19 
aa 189 
aa 167 
ab 13 
nd 23 
at 32 
ca 90 

我希望像

ca 90 
at 32 
ab 13 
nd 23 
aa 167 
aa 189 
aa 19 

我用命令sort -n -k 2.2,2.2 [filename]結果。 但它讓我看到的結果是這樣的:

aa 167 
aa 189 
aa 19 
ab 13 
nd 23 
at 32 
ca 90 

這是不正確的答案。有人知道我的命令有什麼問題嗎?

回答

3

問題是您沒有指定正確的列分隔符,並且sort假定它是一個製表符而不是空格。

sort -t ' ' -nk 2.2 

工作得很好。

編輯:在我的man頁面中,它表示任何空格在默認情況下都被計爲分隔符,但事實是添加-t ' '可以解決此問題。

+0

感謝您的編輯和回答。但奇怪的是,如果我只使用sort -n -k 2排序第二列,它似乎知道分隔符是空格。結果是沒有問題的。你知道原因嗎? –

+0

@stevezhou我確認了這種行爲,但我不確定它爲什麼會發生。 –

0
sort -t ' ' -k2.2,2.2 filename