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

相关推荐

  • 文本处理工具之AWK

    概述:     在之前的文章中,我们介绍过文本处理三剑客的grep、sed,本篇就简要说明下awk的用法。主要是围绕常见的一些用法进行展开,分为以下几个部分:     1、awk的基础语法     2、awk的进阶语法  &nbs…

    Linux干货 2016-09-20
  • N25-第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost tuser1]# cp -r /etc/skel/ /home/tuser1 [root@localhost tuser1]#&nb…

    Linux干货 2016-12-25
  • Linux运维实战之6:挂载/卸载磁盘分区

    上次博文我们具体讨论了Linux系统中磁盘的分区及格式化( http://www.178linux.com/60811),本次博文我们具体来说说分区的挂载哈! 【问题引入】 已经格式化好的分区如何与系统现有的文件系统建立关联(如何使用新分区)? 新的磁盘分区创建完成并格式化之后需要挂载(或装入)到目录树上才能被使用。 何谓挂载/卸载? 【答】将某个…

    Linux干货 2016-12-04
  • Linux下btrfs子卷的挂载

        对btrfs文件系统的补充:     btrfs文件手动挂载自不必多说,但若想btrfs文件系统开机自动挂载,该如何实现呢?     其实只需添加挂载选项即可,如下: UUID=c99895c8-5b14-4276-80c7-ecf…

    Linux干货 2015-12-19
  • Mysql cmake 编译安装、

    基于cmake的mysql安装 1.1 前言 从mysql5.5起,mysql源码安装的编译工具configure开始向cmake过渡。安装方式和之前的略有不同。在这里简单介绍总结下。 安装之前,检查下GNU make, GCC, Perl, libncurses5-dev,cmake-2.8.4是否都已经安装,如果没有安装,用yum install 安装补…

    Linux干货 2017-08-29
  • 高可用keepalived

    21.高可用之keepalived                keepalived实现wrrp热网关备份:        配置网关上的keepalived,配置文件如下         …

    2017-05-15