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
下一篇 2016-02-14

相关推荐

  • bash脚本入门之变量、运算、条件测试

    概述     脚本编程能力是作为运维工程师不可或缺的一项基本技能,各种系统的运维,如果完全靠命令行一条一条命令来执行,工作效率可想而知,而脚本却可以将完成一定功能的各个命令依据一定的流程控制,逻辑判断去完成某种功能,提升工作效率。本章就简单介绍一些linux下的bash脚本编程的基础入门知识,具体内容分为以下几个方面:…

    Linux干货 2016-08-12
  • python 10第二周博客作业

    1.取磁盘利用率:cut -d命令 df|tr –s  ‘ ’   ‘%’ |cut –d “%” –f5正则表达式:df -h |grep “^/dev/sd” |grep -o “[[:digit:]]\+%”|grep -o “[[:digit:]]\+”2. paste 合并两个…

    Linux干货 2018-03-17
  • 几个常用命令、inode及第二周作业

    一、cd命令 1、功能 用来进行不同目录间的切换,属于内部命令。 2、语法 cd  [-L|-P]  [dir] -L : 如果要切换到的目录是一个符号链接,就直接切换到符号链接名表示的目录(默认)。 -P : 如果要切换到的目录是一个符号链接,直接接切换到符号链接指向的目标目录。 3、用法说明 cd 或 cd ~ :进入当前用户的主目录…

    Linux干货 2016-08-02
  • bash基础特性及用户与组管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当做其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxuser.txt文件中。 5、取出当前主机的I…

    2017-09-29
  • mysql/mariadb基于ssl的主从复制

     当mysql/mariadb跨越互联网进行复制时别人可以窃取到mysql/mariadb的复制信息, 这些信息是明文的, 因此存在不安全性, 这里通过ssl对复制的信息进行加密      1. 创建证书中心 在主服务器上创建证书中心 cd /etc/pki/CA 生成私钥 (umask&…

    Linux干货 2016-12-05
  • Linux基础目录命名的法则及规定功能

    Filesystem Hierarchy Standard (FHS):重点在于规范每个特定的目录下应该要放置什么样子的数据。 这样做好处是,在Linux操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。 /bin:系统有很多放置执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。 在/bin底下…

    Linux干货 2017-07-02