首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >awk数组:选择数组元素后的打印字段

问awk数组:选择数组元素后的打印字段
EN

Stack Overflow用户
提问于 2013-12-04 17:08:51
回答 1查看 172关注 0票数 1

我使用awk命令从虚拟文件中提取最大值。

代码语言:javascript
复制
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。对于这样的输出:

代码语言:javascript
复制
    Cat Felix 3
    Dog Snoopy 5

我的问题是-如何打印想要的字段后,选择数组元素?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 17:34:59

你可以试试:

代码语言:javascript
复制
{
    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]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20381571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档