新聞中心
Awk是Unix環(huán)境下一種非常好的語言,適合于文本處理和報表生成,它還有許多精心設(shè)計的特性,允許進行特殊技巧程序設(shè)計,本篇文章重點為大家講解一下awk中的條件語句和循環(huán)語句。

在陽東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營銷,外貿(mào)營銷網(wǎng)站建設(shè),陽東網(wǎng)站建設(shè)費用合理。
條件語句
IF 語句
IF 條件語句語法格式如下:
if (condition)
action
也可以使用花括號來執(zhí)行一組操作:
if (condition)
{
action-1
action-1
.
.
action-n
}
以下實例用來判斷數(shù)字是奇數(shù)還是偶數(shù):
$ awk 'BEGIN {num = 10; if (num % 2 == 0) printf "%d 是偶數(shù)\n", num }'
輸出結(jié)果為:
10 是偶數(shù)
IF – ELSE 語句
IF – ELSE 條件語句語法格式如下:
if (condition)
action-1
else
action-2
在條件語句 condition 為 true 時只需 action-1,否則執(zhí)行 action-2。
$ awk 'BEGIN { num = 11; if (num % 2 == 0) printf "%d 是偶數(shù)\n", num; else printf "%d 是奇數(shù)\n", num }'
輸出結(jié)果為:
11 是奇數(shù)
IF – ELSE – IF
我們可以創(chuàng)建多個 IF – ELSE 格式的判斷語句來實現(xiàn)多個條件的判斷:
$ awk 'BEGIN { a=30; if (a==10) print "a = 10"; else if (a == 20) print "a = 20"; else if (a == 30) print "a = 30"; }'
輸出結(jié)果為:
a = 30
循環(huán)
For
For 循環(huán)的語法如下:
for (initialisation; condition; increment/decrement)
action
for 語句首先執(zhí)行初始化動作( initialisation ),然后再檢查條件( condition )。如果條件為真,則執(zhí)行動作( action ),然后執(zhí)行遞增( increment )或者遞減( decrement )操作。只要條件為 true 循環(huán)就會一直執(zhí)行。每次循環(huán)結(jié)束都會進條件檢查,若條件為 false 則結(jié)束循環(huán)。
下面的例子使用 For 循環(huán)輸出數(shù)字 1 至 5:
$ awk 'BEGIN { for (i = 1; i
輸出結(jié)果為:
1
2
3
4
5
While
While 循環(huán)的語法如下:
while (condition)
action
While 循環(huán)首先檢查條件 condition 是否為 true ,若條件為 true 則執(zhí)行動作 action。此過程一直重復(fù)直到條件 condition 為 flase 才停止。
下面是使用 While 循環(huán)輸出數(shù)字 1 到 5 的例子:
$ awk 'BEGIN {i = 1; while (i
輸出結(jié)果為:
1
2
3
4
5
Break
break 用以結(jié)束循環(huán):
在下面的示例子中,當(dāng)計算的和大于 50 的時候使用 break 結(jié)束循環(huán):
$ awk 'BEGIN { sum = 0; for (i = 0; i 50) break; else print "Sum =", sum } }'
輸出結(jié)果為:
Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45
Continue Continue 語句用于在循環(huán)體內(nèi)部結(jié)束本次循環(huán),從而直接進入下一次循環(huán)迭代。
下面的例子輸出 1 到 20 之間的偶數(shù):
$ awk 'BEGIN {for (i = 1; i
輸出結(jié)果為:
2
4
6
8
10
12
14
16
18
20
Exit
Exit 用于結(jié)束腳本程序的執(zhí)行。
該函數(shù)接受一個整數(shù)作為參數(shù)表示 AWK 進程結(jié)束狀態(tài)。 如果沒有提供該參數(shù),其默認(rèn)狀態(tài)為 0。
下面例子中當(dāng)和大于 50 時結(jié)束 AWK 程序。
$ awk 'BEGIN { sum = 0; for (i = 0; i 50) exit(10); else print "Sum =", sum } }'
輸出結(jié)果為:
Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45
讓我們檢查一下腳本執(zhí)行后的返回狀態(tài):
$ echo $?
執(zhí)行上面的命令可以得到如下的結(jié)果:
19
名稱欄目:詳解Awk條件語句和循環(huán)語句
文章出自:http://m.fisionsoft.com.cn/article/cdpdhig.html


咨詢
建站咨詢
