当前位置:  技术问答>linux和unix

一段awk脚本代码 不解 请指教

    来源: 互联网  发布时间:2016-02-07

    本文导语:  源代码如下: [root@kaven ctest]# cat belts.awk #!/bin/awk -f BEGIN{         FS="#"         belt["Yellow"]         belt["Orange"]         belt["Red"]         student["Junior"]         student["Senior"] } {         for(...

源代码如下:
[root@kaven ctest]# cat belts.awk
#!/bin/awk -f
BEGIN{
        FS="#"
        belt["Yellow"]
        belt["Orange"]
        belt["Red"]

        student["Junior"]
        student["Senior"]
}

{
        for(colour in belt)
        {
                if( $1 == colour )
                        belt[colour]++
        }
}
{
        for(senior_or_junior in student)
        {
                if( $2 == senior_or_junior)
                        student[senior_or_junior]++
        }
}

END{
        for( colour in belt )
                print "the club has", belt[colour],colour,"Belts"
        for( senior_or_junior in student)
                print "the club has", student[senior_or_junior],senior_or_junior,"students"
}

[root@kaven ctest]# cat grade_student.txt
Yellow#Junior
Orange#Senior
Yellow#Junior
Purple#Junior
Brown-2#Junior
White#Senior
Orange#Senior
Red#Junior
Brown-2#Senior
Yellow#Senior
Red#Junior
Blue#Senior
Green#Senior
Purple#Junior
White#Junior

[root@kaven ctest]# ./belts.awk grade_student.txt
the club has 2 Red Belts
the club has 2 Orange Belts
the club has 3 Yellow Belts
the club has 7 Senior students
the club has 8 Junior students

请问
(1)belt["Yellow"]
     belt["Orange"]
     belt["Red"]是否是开辟一个belt的数组,数组大小为3

(2)colour in belt 中colour是否是依次取值为Yellow,Orange,Red
但又是如何赋值的?

|
1)belt是个哈希表,分别初始以"Yellow", "Orange", "Red"为索引的三个变量,为0
2) 是的
赋值相当于belt["Yellow"]++

|
这个不应该理解成数组,因为单元里没有储存数据。

应该理解成enum枚举类型。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • awk里可以嵌套awk吗?
  • 怎样让awk输出到中途退出awk?
  • 请问一下AWK怎么样在一行文本中的第14个字段的最后面加一个空格符呢,不知道AWK的写法该怎么写,在线求教,谢谢了!!!
  • awk中如何带入变量 iis7站长之家
  • awk能改变变量的值么?
  • 关于awk的一点问题
  • awk程序中使用shell的变量
  • 新手请教一段AWK代码,报错。
  • awk如何删除一个文件?
  • shell 以及 awk高手来帮我解决这个问题,谢谢
  • awk在shell script中
  • awk 匹配字符串
  • awk 引用的问题
  • awk参数中文件名是变量的情况
  • awk中如何带入变量
  • shell awk之后对某一列进行求和
  • AWK
  • awk中如何读取shell变量?
  • 用awk如何在当前目录下所有文件中搜索字符串
  • 问一个关于shell中awk的使用


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3