免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3173 | 回复: 14
打印 上一主题 下一主题

这条语句要怎么写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-18 17:51 |只看该作者 |倒序浏览
$ awk '{a[$4,$5]++} END{for(db in a) for(status in a[db]) print db,status,a[db,status]}' connection_file.tmp
报错如下
awk: {a[$4,$5]++} END{for(db in a) for(status in a[db]) print db,status,a[db,status]}
awk:                                                                        ^ syntax error
我想把二维数组中的东西打印出来
谢谢!

论坛徽章:
0
2 [报告]
发表于 2010-05-18 17:55 |只看该作者
回复 1# linuxkumao


    把原始数据给出来吧~然后给出需求~这样不好弄啊

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
3 [报告]
发表于 2010-05-18 17:58 |只看该作者
for(status in a[db])

论坛徽章:
0
4 [报告]
发表于 2010-05-18 18:13 |只看该作者
本帖最后由 linuxkumao 于 2010-05-18 19:15 编辑

回复 2# iori809

不好意思,数据有点敏感,不方便给出啊

大致是
xxx xxx xxx abc 123 xxx xxx
xxx xxx xxx xyz 123 xxx xxx
xxx xxx xxx abc 456 xxx xxx
xxx xxx xxx abc 456 xxx xxx
xxx xxx xxx xyz 123 xxx xxx

想要的结果是
abc 123 1
abc 456 2
xyz 123 2

论坛徽章:
0
5 [报告]
发表于 2010-05-18 18:14 |只看该作者
for(status in a[db])
expert1 发表于 2010-05-18 17:58



what's meaning?

论坛徽章:
0
6 [报告]
发表于 2010-05-18 19:00 |只看该作者
直接一个for(cnt in a) print cnt,a[cnt]就行了啊
如要有格式要求的话 处理下cnt就是了

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
7 [报告]
发表于 2010-05-18 19:10 |只看该作者
回复 4# linuxkumao

  1. awk '{a[$4]++}END{for(i in a)print i,a[i]}' urfile
复制代码

论坛徽章:
0
8 [报告]
发表于 2010-05-18 19:16 |只看该作者
直接一个for(cnt in a) print cnt,a[cnt]就行了啊
如要有格式要求的话 处理下cnt就是了
lkk2003rty 发表于 2010-05-18 19:00

回复  linuxkumao
Shell_HAT 发表于 2010-05-18 19:10


不好意思,之前写错了,我修改了一下四楼的帖子
操作的应该是一个二维数组

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
9 [报告]
发表于 2010-05-18 19:19 |只看该作者
回复 8# linuxkumao

  1. awk '{a[$4" "$5]++}END{for(i in a)print i,a[i]}' urfile
复制代码

论坛徽章:
0
10 [报告]
发表于 2010-05-18 20:50 |只看该作者
本帖最后由 linuxkumao 于 2010-05-18 20:51 编辑

谢谢  Shell_HAT !

呵呵,确实,这样可以得到
abc 123 1
abc 456 2
xyz 123 2

可如果我想得到
abc  123 1  456 2
xyz  123 2
又要如何做呢

要是能知道如何操作二维数组,那就能做任何处理了,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP