免费注册 查看新帖 |

Chinaunix

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

请教一个AWK的语法问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-09 14:20 |只看该作者 |倒序浏览
在看《LINUX与UNIX SHELL编程指南》关于AWK一章的时候,有点疑问
在讲解AWK数组的时候有这么个例子:

  1. $vi group_student
  2.       1 yellow#junior
  3.       2 orange#senior
  4.       3 yellow#junior
  5.       4 purple#junior
  6.       5 brown-2#junior
  7.       6 white#senior
  8.       7 orange#senior
  9.       8 red#junior
  10.       9 brown-2#senior
  11.      10 yellow#senior
  12.      11 red#junior
  13.      12 blue#senior
  14.      13 green#senior
  15.      14 purple#junior
  16.      15 white#junior
复制代码

awk脚本

  1. $vi belts.awk
  2.       1 #!/bin/awk -f
  3.       2 BEGIN{FS="#"
  4.       3         belt["yellow"]
  5.       4         belt["orange"]
  6.       5         belt["red"]
  7.       6         student["junior"]
  8.       7         student["senior"]
  9.       8 }
  10.       9 {for (colour in belt)
  11.      10    {if ($1==colour)
  12.      11    belt[colour]++}}
  13.      12 {for (senior_or_junior in student)
  14.      13    {if ($2==senior_or_junior)
  15.      14     student[senior_or_junior]++}}
  16.      15 END{ for (colour in belt) print "The club has", belt[colour], colour, "belts"
  17.      16 for (senior_or_junior in student) print "The club has", student[senior_or_junior], senior_or_junior, "students"}
复制代码


最后用命令输出

  1. $ belts.awk grade_student

  2. The club has 2 orange belts
  3. The club has 2 red belts
  4. The club has 3 yellow belts
  5. The club has 7 senior students
  6. The club has 8 junior students
复制代码


请高人指点一下这里for语句里or左右两边下划线的用法。

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [报告]
发表于 2008-10-09 14:23 |只看该作者
senior_or_junior 只是一个自定义的变量,可以换成任何你想用的。

论坛徽章:
0
3 [报告]
发表于 2008-10-09 14:29 |只看该作者
再仔细看看是那么回事,是自己想复杂了。 谢谢了。

论坛徽章:
0
4 [报告]
发表于 2008-10-09 20:44 |只看该作者
无特别意思,变量名中的一部分

论坛徽章:
0
5 [报告]
发表于 2008-10-28 16:21 |只看该作者
谢谢楼主,正好练习awk,懒得输入,这下可以直接COPY一份了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP