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

相关推荐

  • DNS

    配置缓存服务器: #vim /etc/named.conf Options { Listen-on port 53 { 127.0.0.1;172.16.0.68;}; //listen-on-v6 port 53 {::1;}; ……. Allow-query {any;}; …… Dnssec-enable…

    2017-06-04
  • 文件权限管理

    一 、文件属性介绍 1、linux文件权限分为读(read)、写(write)、执行(excute)三种,主要针对三类用户进行定义:ouwer:属主(u) 、group(g):属组、 other(o):其他人。文件的权限组合可以分为两种,一种是由三个字母r 、w、 x组成,一种是由数字组成4、2、1,它们代表的意思是r = 4 表示读权限、w = 2表示写权…

    Linux干货 2016-08-08
  • 系统基础之权限管理

    权限管理: 概论:  上节,为大家介绍了用户,和组的知识.今天为大家介绍与用户,组息息相关的知识,权限.linux是多用户,多任务的操作系统,面对多人的操作,安全问题就很重要,权限机制就很好的对安全进行防护,避免他人操作自己的文件.下面给大家详细介绍权限.   首先让我们先直观地看下权限,对权限有个最基本的认识.以/etc/issue文件…

    Linux干货 2016-08-04
  • centos启动流程

    1、centos启动流程 简单流程简介: POST –> Boot Sequence(BIOS) –> Boot Loader (MBR) –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init…

    Linux干货 2016-09-09
  • Java构造时成员初始化的陷阱

    让我们先来看两个类:Base和Derived类。注意其中的whenAmISet成员变量,和方法preProcess() public class Base {     Base() {         preP…

    Linux干货 2015-04-03
  • 输出重定向 输入重定向 管道简单介绍 -20160729

    输出重定向 输入重定向 管道简单介绍 标准输入和输出 我们先来了解下输入和输出的概念: 在计算机中我们了解到计算机的组成部分:其中有输入 输出设备。       输出重定向 对于程序来说: 程序 :指令 + 数据 对于数据来说,数据可以由我们通过键盘输入,或者程序直接使用存储设备上的数据,我们称为读入 数据,程序处理数据后需要返…

    Linux干货 2016-08-04