$ 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