首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash脚本按特定字段分组和计数

Bash脚本按特定字段分组和计数
EN

Stack Overflow用户
提问于 2015-01-18 01:06:53
回答 2查看 322关注 0票数 0

如果我打开了一个新问题,很抱歉,但它与上一个问题无关,因为现在我需要一个bash命令来分析输出。

我将query的输出存储在一个文件中,如下所示:

代码语言:javascript
复制
3277654321    333011123456789
3277654321    333015123456789
3277654321    333103123456789
3277654321    333201123456789
3291234567    333991123456789
3291234567    333991123456789
3291234567    333011123456789

我需要一个bash命令来计算具有相同前5位数的field1和field2,并报告如下输出:

代码语言:javascript
复制
3277654321=4;33301=2;33310=1;33320=1    
3291234567=3;33399=2;33301=1

谢谢卢卡斯。

EN

Stack Overflow用户

发布于 2015-01-18 15:34:28

朋友们,我想分享一个“优雅”的解决方案。感谢其他社区用户,他们为我提供了一些建议。

代码语言:javascript
复制
awk     'NR>0   {C1[$1]++
                 C2[$1,substr($2,1,5)]++
                }
         END {for (c2 in C2) {split (c2, cx, SUBSEP); print cx[1] "=" C1[cx[1]] ";" cx[2] "=" C2[c2]}}
        ' SUBSEP=";" out.txt | sort | awk     '$1 != L        {printf "%s%s", LT, $1; L=$1; LT="\n"}
                        {printf ";%s", $2}
         END {printf "\n"}
        ' FS=";"

3277654321=4;33301=2;33310=1;33320=1
3291234567=3;33399=2;33301=1

rici,这不是我要求别人为我写代码的情况。这只是一个大脚本中非常小的一部分,所以我只是请求帮助如何做一件小事情。我对不同的方法很感兴趣,这就是为什么我不提供任何代码示例的原因。感谢所有参与这个问题的SO用户,我仍然愿意尝试不同的方法。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28001979

复制
相关文章

相似问题

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