我使用awk
命令从虚拟文件中提取最大值。
cat dummy_file
Cat Felix 3
Cat Garfield 2
Cat Tom 1
Dog Snoopy 5
Dog Spike 4
awk '{max[$1] =!($1 in max) ? $3 : ($3 > max[$1]) ? $3 : max[$1]} \
END {for (i in max) print i,max[i]}' dummy_file
Cat 3
Dog 5
除了提取的最大值和数组元素之外,我还需要相应的$2
。对于像这样的输出:
Cat Felix 3
Dog Snoopy 5
我的问题是 - 如何在选择数组元素后打印想要的字段?
答案 0 :(得分:1)
您可以尝试:
{
if ($1 in max) {
if ($3> max[$1]) {
max[$1]=$3
type[$1]=$2
}
} else {
max[$1] = $3
type[$1]=$2
}
}
END {
for (i in max) print i,type[i],max[i]
}