AWK控制流 - Awk教程

像其他的编程语言AWK还提供条件语句以控制程序流程。本教程介绍AWK的条件语句的使用例子。

If 语句

它只是测试条件,并执行特定操作,这取决于条件。下面是 if 语句的语法:

if (condition)
    action

我们也可以用一对大括号,如下所示执行多个操作:

if (condition)
{
    action-1
    action-1
    .
    .
    action-n
}

例如下面简单的例子,检查给定的数是否为偶数:

[jerry]$ awk 'BEGIN {num = 10; if (num % 2 == 0) printf "%d is even number.\n", num }'

在执行上面的代码后,得到以下结果:

10 is even number.

If else 语句

在if-else语句的语法,能够提供操作列表,当条件为false时就执行。

下面是 if-else 语句的语法:

if (condition)
    action-1
else
    action-2

在上面的语法:条件计算为true时执行action-1 ,action-2条件计算为false时执行。例如下面简单的例子,检查给定的数是否为偶数:

[jerry]$ awk 'BEGIN {num = 11; if (num % 2 == 0) printf "%d is even number.\n", num; else printf "%d is odd number.\n", num }'

在执行上面的代码后,得到以下结果:

11 is odd number.

If-else-If 阶梯

可以轻松地创建if-else-if阶梯使用多个if-else语句。下面简单的例子说明了这一点:

[jerry]$ awk 'BEGIN {
a=30;
if (a==10)
  print "a = 10";
else if (a == 20)
  print "a = 20";
else if (a == 30)
  print "a = 30";
}'

在执行上面的代码后,得到以下结果:

a = 30