【发布时间】:2014-05-07 17:33:44
【问题描述】:
我有一个列数可变的文件:
输入:
1 1 2
2 1 5
5 2 3
7 0 -1
4 1 4
我想打印每列的最大值和最小值:
期望的输出:
max: 7 2 5
min: 1 0 -1
对于单个列,例如$1,我知道我可以使用类似的东西找到最大值和最小值:
awk '{if(min==""){min=max=$1}; if($1>max) {max=$1}; if($1<min) {min=$1};} END {printf "%.2g %.2g\n", min, max}'
问题
如何扩展它以循环遍历所有列(在我的示例中不一定只有 3 个)?
非常感谢!
【问题讨论】:
-
随着
for (i=1; i<=NF; i++)的出现,将每个$1更改为$i并将min/max更改为min[i]/max[i]。 -
我觉得我试过了,但我一定是在某些时候犯了错误!
标签: awk