$ sort -t $'\t' -k 1rn,1 -k 2,2rn -k 3f,4 listaprezzi
2050 900 bananas 5
1905 700 grapes 17
250 4000 oranges 10
230 9200 figs 4
220 5000 lemons 10
200 8000 pears 8
我想listaprezzi
按相反的數字順序對第一列進行排序(選項rn
),第二rn
列也按字母順序排序(f
)。正確的命令是什麼?
我嘗試了很多方法但沒有成功。
答案1
如果我正確理解你的問題,你想重新排列你的數據,即獨立排序(向上或向下)同一行的不同欄位。您不能使用 bare 來做到這一點sort
,您需要使用其他工具,例如在 的幫助下awk
,paste
您可以編寫以下內容:
$ paste <(awk '{print $1}' listaprezzi | sort -nr) <(awk '{print $2}' \
listaprezzi | sort -nr) <(awk '{print $3}' listaprezzi | sort) <(awk \
'{print $4}' listaprezzi)
結果是
2050 9200 bananas 5
1905 8000 figs 17
250 5000 grapes 10
230 4000 lemons 4
220 900 oranges 10
200 700 pears 8