鍍金池/ 教程/ Linux/ AWK循環(huán)
AWK環(huán)境安裝配置
AWK格式化打印
Awk教程
AWK控制流
AWK循環(huán)
AWK用戶自定義函數(shù)
AWK工作流程
AWK數(shù)組
AWK基本語(yǔ)法
AWK基本示例
AWK運(yùn)算符
AWK內(nèi)置函數(shù)
AWK內(nèi)置變量
AWK輸出重定向
AWK正則表達(dá)式

AWK循環(huán)

像條件語(yǔ)句,AWK還提供了循環(huán)語(yǔ)句。它被用來(lái)執(zhí)行設(shè)定在重復(fù)的方式動(dòng)作。循環(huán)繼續(xù)執(zhí)行,只要循環(huán)條件為true。本教程介紹AWK循環(huán)使用合適的例子。

For 循環(huán)

下面是for循環(huán)的語(yǔ)法:

for (initialisation; condition; increment/decrement)
    action

初始的語(yǔ)句執(zhí)行初始化動(dòng)作,然后它檢查的條件;如果條件為真,那么它執(zhí)行操作,在這之后它執(zhí)行遞增或遞減操作。循環(huán)繼續(xù)執(zhí)行,只要條件為真。比如下面的例子使用循環(huán)打印從1到5的數(shù):

[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

在執(zhí)行上面的代碼后,得到以下結(jié)果:

1
2
3
4
5

While 循環(huán)

While循環(huán)一直執(zhí)行的動(dòng)作,直到一個(gè)特定的邏輯條件計(jì)算為真。下面給出的是while循環(huán)的語(yǔ)法:

while (condition)
    action

AWK首先檢查條件,如果條件為真,那么就執(zhí)行操作,這個(gè)過(guò)程不斷重復(fù),只要循環(huán)條件計(jì)算為true。比如下面的例子使用while循環(huán)打印1到5個(gè)數(shù)字:

[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'

在執(zhí)行上面的代碼后,得到以下結(jié)果:

1
2
3
4
5

Do-While 循環(huán)

do-while循環(huán)類似于while循環(huán),不同之處在于測(cè)試條件是在循環(huán)結(jié)束時(shí)進(jìn)行計(jì)算。下面給出的是do while循環(huán)的語(yǔ)法:

do
    action
while (condition)

在do-while循環(huán)操作語(yǔ)句被執(zhí)行至少一次,即使在條件語(yǔ)句的計(jì)算結(jié)果為假。例如示例下面使用do-while循環(huán)打印1到5的數(shù)字:

[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'

在執(zhí)行上面的代碼后,得到以下結(jié)果:

1
2
3
4
5

Break 語(yǔ)句

如其名稱提示,它用于結(jié)束循環(huán)的執(zhí)行。這里用于結(jié)束循環(huán),當(dāng)sum大于50的例子。

[jerry]$ awk 'BEGIN {sum = 0; for (i = 0; i < 20; ++i) { sum += i; if (sum > 50) break; else print "Sum =", sum } }'

在執(zhí)行上面的代碼后,得到以下結(jié)果:

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Continue 語(yǔ)句

Continue語(yǔ)句用于循環(huán)內(nèi)跳到循環(huán)的下一次迭代。當(dāng)我們想跳過(guò)循環(huán)里面的一些數(shù)據(jù)的處理是非常有用的。比如下面的例子使用continue語(yǔ)句,打印1-20的偶數(shù)。

[jerry]$ awk 'BEGIN {for (i = 1; i <= 20; ++i) {if (i % 2 == 0) print i ; else continue} }'

在執(zhí)行上面的代碼后,得到以下結(jié)果:

2
4
6
8
10
12
14
16
18
20

Exit 語(yǔ)句

它是用來(lái)停止腳本的執(zhí)行。它接受一個(gè)整數(shù)作為參數(shù),這將是AWK進(jìn)程的退出狀態(tài)代碼。如果沒(méi)有提供任何參數(shù),退出返回狀態(tài)為零。這里是其中停止執(zhí)行當(dāng)總和大于50的例子。

[jerry]$ awk 'BEGIN {sum = 0; for (i = 0; i < 20; ++i) { sum += i; if (sum > 50) exit(10); else print "Sum =", sum } }'

在執(zhí)行上面的代碼后,得到以下結(jié)果:

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

檢查腳本的返回狀態(tài)。

[jerry]$ echo $?

在執(zhí)行上面的代碼后,得到以下結(jié)果:

10

上一篇:AWK運(yùn)算符下一篇:AWK格式化打印