• awk流程控制


    awk 中if和for while

    一、awk嵌套if判断语句

    格式如下:

    if(表达式)

    {语句1}

    else if(表达式)

    {语句2}

    else

    {语句3}

    如果if后边的语句块是的单个语句,{}可以不用写,如果是多条语句,必须用{}括起来,表示它们都属于一个if的执行语句

    格式:

    if(表达式)

    {语句1;语句2;语句3;}

    例子1:

    [root@centos-1 ~]# vi a

    #!/bin/bash

    awk -F: '{

    if ($1 == "root")

        {

         print "这是超级用户";

        }

    else

        {

         print "这是普通用户";

        }

    }' /etc/passwd

     

    执行结果

    [root@centos-1 ~]# sh a

    这是超级用户

    这是普通用户

    这是普通用户

    这是普通用户

    这是普通用户

     

     

     

    二、多if嵌套

     

    例子:

    #!/bin/bash

    awk -F: '{

    if ($NF == "/sbin/nologin" )

         {

          if ( $1 == "adm")

            {

                    print "benet"

            }

          if ( $1 == "ftp")

            {

                    print "accp"

            }

         }

    }' /etc/passwd

     

     

    三、awk中的for循环

    格式1:

    for (i in 取值列表)

    {执行语句}

     

    格式2:

    for (变量;循环条件;表达式)

    {执行语句}

     

    如果for后边的语句块是的单个语句,{}可以不用写,如果是多条语句,必须用{}括起来,表示它们都属于一个for循环的执行语句

    格式:

    for (变量;循环条件;表达式)

    {执行语句1;执行语句2;执行语句3}

     

    例子1:动作没有用{}扩起来。用;结束动作语句。

     

    awk 'BEGIN{a=0;for(i=0;i<=100;i++)a+=i;print a}'

    5050

    a+=1;  :这里的分号表示for的一个结束点,a+=i属于for的执行语句。而print a结束后才执行

    如果将{a+=i;print a}用大括号括起来就是另外一个意思了。这两句都都是for的执行语句了。

    结果如下:

    [root@localhost ~]# awk 'BEGIN{a=0;for(i=0;i<=100;i++){a+=i;print a}}'
    0
    1

    ............

    ............

    4851
    4950
    5050

     

    例子2:动作用{}括起来,没有用;结束

    #!/bin/bash

    awk 'BEGIN{

        {a=0}

        for (i=0;i<=100;i++)

        {a+=i}

        print a

    }'

    这对大括号说明里边的所有动作都在BEGIN当中的。

    注意:上述的两个例子都是在BEGIN中执行的。因为我们是在BEGIN{}里边执行的动作

    也就是说,我们在用awk计算的时候,直接在BEGIN{}部分中就可以完成

     

    例子:

    [root@centos-1 ~]# awk 'BEGIN{a=1;b=2;print (a+b)}'

    3

  • 相关阅读:
    创业日记-时间过的也快也慢
    通过获取客户端Json数据字符串,反序列化为实体对象的一段代码
    Sandcastle是什么
    使用VisualSVN Server自动发布站点
    Microsoft Visual Studio Ultimate 2015 Preview使用笔记
    俞敏洪:自卑比狂妄更糟糕
    灰度发布
    TLV格式是什么格式
    zend studion实现自动换行
    数字格式化,从右往左每隔三位加逗号的四种方法
  • 原文地址:https://www.cnblogs.com/pangbing/p/6955712.html
Copyright © 2020-2023  润新知