2017-09-03 59 views
1

我試圖按第三列倒序(降序)先倒數3列,然後按第一列按字母順序排序(打破關係)。參賽作品用逗號分隔(,)。Bash排序逗號分隔的列數字,然後按字母順序

例如,我的數據集是:

y,5,50 
x,10,50 
z,4,100 

預期輸出:

z,4,100 
x,10,50 
y,5,50 

但是我得到的輸出是:

z,4,100 
y,5,50 
x,10,50 

我使用:

sort -t, -k3,3 -n -r -k1,1 filename 

不知道爲什麼這不起作用。

+1

請看一看:?當有人回答我的問題,我應該怎麼辦( http://stackoverflow.com/help/someone-answers) – Cyrus

回答

2

,我建議由-k3,3nr更換-k3,3 -n -r

sort -t, -k3,3nr -k1,1 file 

輸出:

 
z,4,100 
x,10,50 
y,5,50 
1

你所建議不起作用的原因是監守你應用的標誌-n-r因此全局排序也是-r顛倒。要應用標誌在每個關鍵的基礎上,使用方法:

sort -t, -k3,3nr -k1,1 filename 

這給預期輸出:

z,4,100 
x,10,50 
y,5,50