awk用法三

  6、结构化控制语句

    6.1 if语句

      格式:if(条件) {body} else {else body}

        实例1:判断/etc/passwd文件中的UID如果大于500则显示为“common user”,否则显示为“admin user”:

1.jpg

    6.2 while循环

      格式:while(条件){body}

         条件为真时进入循环体。

        实例2:打印出/etc/inittab文件中每行中为偶数个的字符串:

2.jpg

        实例3:找出/etc/inittab文件中长度大于等于6个字符的字符串:

3.jpg

    6.3 do-while循环

      格式:do {body}while (条件)

        先进入循环体执行一次,再判断条件。

        将实例3用do-while改写如下:

4.jpg

    6.4 for循环

      格式:for (变量赋值;条件;条件修正){body}

        将实例2和实例3分别使用for循环修改如下:

5.jpg

6.jpg

     另外,for循环可用来遍历数组元素,其格式语法如下:

       for (i in 数组名) {for body}

    6.5 循环控制

      (1)break

        结束整个循环体。

      (2)continue

        结束本次循环,进入下一次循环。

    以上两个命令的用法与在shell脚本中的用法相同。

    6.6 next

      提前结束对本行的处理,进入下一行的处理。

        实例4:显示/etc/passwd文件中行号为奇数的用户名:

7.jpg

  7、数组

    7.1 定义数组变量

      array[index]=element

      inddex:可以使用任意字符串,如果某数组元素事先不存在,那么在引用时,awk会自动创建此元素并将其初始化为空串;因此要判断其数组是否存在某元素,可以使用“index in array”这种格式。

8.jpg

    7.2 遍历数组变量      

      要遍历数组中的每一个元素,需要使用如下特殊结构:

       for (var in array) {for body}

        var会遍历array的索引。

9.jpg

        实例5:统计netstat -ant显示的结果中每种状态的个数:

10.jpg

    7.3 删除数组变量 

     delete array[index]

11.jpg

 

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/10464

(0)
petmasterpetmaster
上一篇 2016-02-14 10:00
下一篇 2016-02-14 10:00

相关推荐

  • 逻辑卷配置管理

    逻辑卷管理逻辑卷创建1、fdisk t 8e //修改分区类型 2、pvcreate  /dev/sd{a7,b} //创建物理卷pvs pvdisplay   //查看物理卷信息 3、vgcreate  vg0  /dev/sd{a7,b}  //创建卷组v…

    Linux干货 2016-08-30
  • 磁盘阵列(raid),划分逻辑卷(lvm)

    磁盘阵列(raid),划分逻辑卷(lvm)       将来我们在生产环境中由于磁盘的来回读写量比较大,所以就容易导致磁盘的损坏率比较高。但是,处于生产环境的需求,我们还得保证服务器的正常运行。或者说我们需要对服务器的读写速率进行优化,这样我们就不得不运用到这个磁盘阵列(raid )。而所谓的磁盘阵列就是使用…

    Linux干货 2016-08-29
  • zabbix如何监控nginx的status

    nginx   status配置 server {                 listen      80;                 server…

    Linux干货 2016-02-19
  • 无插件Vim编程技巧

    相信大家看过《简明Vim教程》也玩了《Vim大冒险》的游戏了,相信大家对Vim都有一个好的入门了。我在这里把我日常用Vim编程的一些技巧列出来给大家看看,希望对大家有用,另外,也是一个抛砖引玉的过程,也希望大家把你们的技巧跟贴一下,我会更新到这篇文章中。另外,这篇文章里的这些技巧全都是vim原生态的,不需要你安装什么插件。我的Vim的版本是7.2。 浏览代码…

    Linux干货 2015-04-01
  • N26-博客作业-week13

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)  1)共享名为shared,工作组为magedu;  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;  3)添加samb…

    Linux干货 2017-06-15
  • shell脚本编程 4

    Shell脚本编程4 一、杂项知识整理 1、数组赋值方法: declare -a files files=(/var/log/*.log)通配所有文件也可 2、创建临时文件: mktemp命令:创建的临时文件可避免冲突 mktemp  NAME.XXXX(x至少要出现三个) -d 创建临时目录 –tmpdir=/DIR 指明临时文件所存…

    Linux干货 2016-08-24