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** 语法中,我们可以提供当条件为假时要执行的动作列表。

**if-else** 语句的语法如下:

语法

if (condition)
   action-1
else
   action-2

在上述语法中,当 condition 的值评估为真时执行 action-1,当 condition 的值评估为假时执行 action-2。例如,以下示例检查一个数字是否是偶数:

示例

[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-else-if** 梯形。以下示例展示了这一点:

示例

[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
广告
© . All rights reserved.