與其實(shí)的編程語(yǔ)言一樣,AWK 同樣提供了條件語(yǔ)句控制程序的執(zhí)行流程。這一章中我們會(huì)介紹 AWK 中條件語(yǔ)句的使用方法。
條件語(yǔ)句測(cè)試條件然后根據(jù)條件選擇執(zhí)行相應(yīng)的動(dòng)作。下面是條件語(yǔ)句的語(yǔ)法:
if (condition)
action
也可以使用花括號(hào)來(lái)執(zhí)行一組操作:
if (condition)
{
action-1
action-1
.
.
action-n
}
下面的例子判斷數(shù)字是奇數(shù)還是偶數(shù):
[jerry]$ awk 'BEGIN {num = 10; if (num % 2 == 0) printf "%d is even number.\n", num }'
執(zhí)行上面的命令可以得到如下的結(jié)果:
10 is even number.
if-else語(yǔ)句中允許在條件為假時(shí)執(zhí)行另外一組的動(dòng)作。下面為 if-else 的語(yǔ)法格式:
if (condition)
action-1
else
action-2
其中,條件為真時(shí)執(zhí)行 action-1,條件為假時(shí)執(zhí)行 action-2。下面是使用該語(yǔ)句判斷數(shù)字是否為偶數(shù)的例子:
[jerry]$ awk 'BEGIN {num = 11;
if (num % 2 == 0) printf "%d is even number.\n", num;
else printf "%d is odd number.\n", num
}'
執(zhí)行上面的操作可以得到如下的結(jié)果:
11 is odd number.
我們可以很輕松地使用多個(gè) if-else 語(yǔ)句構(gòu)造 if-else-if 梯從而實(shí)現(xiàn)多個(gè)條件的判斷。示例如下:
[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";
}'
執(zhí)行上面的命令可以得到如下的結(jié)果:
a = 30
更多建議: