免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1927 | 回复: 7
打印 上一主题 下一主题

关于awk的数组问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-22 15:29 |只看该作者 |倒序浏览
如文件 db
Tom Jones
Mary Adams
Sally Chang
Billy Black
Tom Savage
Tom Chung
Reggie Steel
Tommy Tucker

%awk '/^Tom/{name[NR]=$1};\
END {for (i in name) {Print name}}' db
Tom
Tommy
Tom
Tom
这是一个for的特殊循环
感到迷惑的是标红的name究竟表示什么??是表示数组的值?如果是哪表兰的name又表示什么呢?


[ 本帖最后由 贪睡的小猪 于 2007-7-22 16:15 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-07-22 15:59 |只看该作者
定义一个关联数组name, 把NR作为一个下标,把第一域的值赋值给每个记录数组的各个元素, 最好for循环对数组name进行循环操作, 显示数组name的每个元素

论坛徽章:
0
3 [报告]
发表于 2007-07-22 16:06 |只看该作者
原帖由 寂寞烈火 于 2007-7-22 15:59 发表
定义一个关联数组name, 把NR作为一个下标,把第一域的值赋值给每个记录数组的各个元素, 最好for循环对数组name进行循环操作, 显示数组name的每个元素



谢谢烈火兄的解释,我的意思是在for循环中定义的name(标红)究竟表示的是什么??是数组中的各个元素吗如name1 name2
还是是数据元素的值如 TOM??

[ 本帖最后由 贪睡的小猪 于 2007-7-22 16:08 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-07-22 16:13 |只看该作者
如文件 db
Tom Jones
Mary Adams
Sally Chang
Billy Black
Tom Savage
Tom Chung
Reggie Steel
Tommy Tucker

%awk '/^Tom/{name[NR]=$1};\
END {for (i in name) {Print name}}' db
Tom
Tommy
Tom
Tom
这是一个for的特殊循环
感到迷惑的是标红的name究竟表示什么??是表示数组的值?如果是哪表兰的name又表示什么呢?


[ 本帖最后由 贪睡的小猪 于 2007-7-22 16:14 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2007-07-22 16:46 |只看该作者
你认为这仨name是不一样的东西?

论坛徽章:
0
6 [报告]
发表于 2007-07-22 19:31 |只看该作者
%awk '/^Tom/{name[NR]=$1};\
END {for (i in name) {Print name[ i ]}}' db


name[NR]中的数组因该是name[1],name[5],name[6],name[8]这些元素值tom、tom、tom、tommy
for (i in name)中name的数组因该是那些元素????
name[ i ]中的i又表示的是什么呢?我对这个下标不是很理解?这个i应该是字符串吧难道是name[tom],name[tom],name[tom],name[tommy]
那name[tom]和name[1]有联系吗?我就是不明白这点。烈火兄能否详细的说明一下,谢谢!!

[ 本帖最后由 贪睡的小猪 于 2007-7-22 19:34 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2007-07-23 00:49 |只看该作者
我建议你仔细阅读你手头的资料或者本论坛里置顶的AWK的相关贴子
PS:我对awk的数组应用也停留在初级水平~ ^_^

论坛徽章:
0
8 [报告]
发表于 2007-07-23 13:43 |只看该作者
%awk '/^Tom/{name[NR]=$1};\
END {for (i in name) {Print i,name[ i ]}}' db

把i一块输出来看一下你就明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP