Chinaunix
标题:
关于sort 多列排序问题
[打印本页]
作者:
qulei616
时间:
2018-11-29 00:40
标题:
关于sort 多列排序问题
test.log
1 2 3
3 5 8
6 8 3
4 2 1
3 6 5
现在遇到一个问题 想所有列按照升序排列 原有的行可以打乱 因为只想拿到最后一行的三个最大数字。
但是查找了很多相关的资料昨天折腾几个小时 类似 cut -n -t 分隔符 -k1,1 -k2,2 -k3,3 这种都是已某一列为基础排序 在不改变行的情况下排列。请教sort 或者awk的 相关写法 谢谢
作者:
wh7211
时间:
2018-11-29 09:48
回复
1#
qulei616
awk '{for(i=1;i<=NF;i++){a[i]=a[i]>$i?a[i]:$i}}END{for(i in a){print i,a[i]}}' test.log
1 6
2 8
3 8
复制代码
作者:
xdsnet
时间:
2018-12-04 15:12
本帖最后由 xdsnet 于 2018-12-04 15:17 编辑
本身sort就是对行来排序,你的需求其实应该是析出每列,再分别排序,这样就可以得到最后的结果。
cut -d' ' -f 1 abc.txt | sort -n | tail -n 1
cut -d' ' -f 2 abc.txt | sort -n | tail -n 1
cut -d' ' -f 3 abc.txt | sort -n | tail -n 1
这样得到的3个数字就是你要的结果啊
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2