假设我有一个文件(示例),如下所示:
Apple - 2750 - 30
Pear - 1000 - 45
Peach - 1245 - 3
Banana - 1500 - 50
我想使用shell脚本按第二列和第三列的总和对这些行进行排序 所以在运行我的shell脚本之后我想看看:
Apple - 2750 - 30
Banana - 1500 - 50
Peach - 1245 - 3
Pear - 1000 - 45
我设法得到两列的总和:
cat sample | awk -F " - " '{sum=$2+$3}{print sum}'
现在,我如何按总和对此文件进行排序(我不想更改文件,只将其写入终端)?
答案 0 :(得分:2)
将awk与sort
和cut
混合:
$ awk '{print $0, $3+$5}' sample | sort -k6rn | cut -d' ' -f 1-5
Apple - 2750 - 30 2780
Banana - 1500 - 50 1550
Peach - 1245 - 3 1248
Pear - 1000 - 45 1045
以上显示的是总和,但实际上cut
会将其删除。你也可以使用GNU awk' s asort
来完成它。