• Linux常用基本命令:三剑客命令之-awk数组用法


    AWK的数组用法跟javascript类似。

    1,定义数组

    awk 'BEGIN{a[0]="zhangsan";a[1]="lisi";print a[0]}'

    2,打印一个没有定义的数组项,值为空

    awk 'BEGIN{a[0]="zhangsan";a[1]="lisi";print a[2]}'

    3,判断一个数组项 是否存在,用 ( 下标 in 数组 )

    ghostwu@dev:~/linux/awk$ awk 'BEGIN{a[0]="zhangsan";a[1]="lisi"; if( 1 in a ) print a[1]; }'
    lisi

    4,数组也可以用关联索引定义

    ghostwu@dev:~/linux/awk$ awk 'BEGIN{a["name"]="张三";a["name2"]="李四";print a["name"]}'
    张三

    5,delete:删除一个数组项或者一个数组

    ghostwu@dev:~/linux/awk$ awk 'BEGIN{a["name"]="张三";a["name2"]="李四";print a["name"]; delete a["name"]; print a["name"]; }'
    张三
    
    ghostwu@dev:~/linux/awk$ awk 'BEGIN{a["name"]="张三";a["name2"]="李四";print a["name"]; delete a["name"]; print a["name2"]; }'
    张三
    李四
    ghostwu@dev:~/linux/awk$ awk 'BEGIN{a["name"]="张三";a["name2"]="李四";print a["name"]; delete a; print a["name2"]; }'
    张三

    6,数字,字符串都可以进行算术运算

    >当一个不存在的元素,参与算术运算时,会被当做0

    >当一个元素是字符串,参与算术运算时,会被当做0

    ghostwu@dev:~/linux/awk$ awk 'BEGIN{ a = 1; print a; a = a + 1; print a }'
    1
    2
    ghostwu@dev:~/linux/awk$ awk 'BEGIN{ a = "ghostwu"; a = a + 1; print a }'
    1
    ghostwu@dev:~/linux/awk$ awk 'BEGIN{ print a[0]; a[0] = a[0] + 1; print a[0] }'
    
    1

    7,应用,统计某个字符串出现的次数

    ghostwu@dev:~/linux/awk$ awk '{count[$2]++} END{ for( i in count ) { print i,count[i]; } }' host.txt 
    192.177.81.1 1
    10.0.0.5 3
    192.168.9.254 1
    192.168.1.1 3
    192.168.3.98 2
    ghostwu@dev:~/linux/awk$ cat host.txt 
    host1    192.168.1.1
    host2    192.177.81.1
    host3    10.0.0.5
    host4    192.168.3.98
    host5    192.168.3.98
    host6    192.168.9.254
    host7    192.168.1.1
    host8    192.168.1.1
    host9    10.0.0.5
    host10    10.0.0.5
  • 相关阅读:
    JS-Date日期内置对象
    JS-string内置对象
    MyBatis的事务处理
    MyBatis的简单操作
    MyBatis第一个项目示例
    CSS-盒子模型
    百分比布局的使用
    使用TabLayout快速实现一个导航栏
    彻底理解android中的内部存储与外部存储
    Eclipse的LogCat总是自动清空怎么办?
  • 原文地址:https://www.cnblogs.com/ghostwu/p/9097865.html
Copyright © 2020-2023  润新知