
- AWK 教程
- AWK - 首頁
- AWK - 概述
- AWK - 環境
- AWK - 工作流程
- AWK - 基本語法
- AWK - 基本示例
- AWK - 內建變數
- AWK - 運算子
- AWK - 正則表示式
- AWK - 陣列
- AWK - 控制流
- AWK - 迴圈
- AWK - 內建函式
- AWK - 使用者自定義函式
- AWK - 輸出重定向
- AWK - 美化輸出
- AWK 有用資源
- AWK - 快速指南
- AWK - 有用資源
- AWK - 討論
AWK - 迴圈
本章將透過合適的示例解釋 AWK 的迴圈。迴圈用於重複執行一組操作。只要迴圈條件為真,迴圈執行就會繼續。
For 迴圈
for 迴圈的語法如下:
語法
for (initialization; condition; increment/decrement) action
最初,for 語句執行初始化操作,然後檢查條件。如果條件為真,則執行操作,然後執行增量或減量操作。只要條件為真,迴圈執行就會繼續。例如,下面的示例使用 for 迴圈列印 1 到 5:
示例
[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'
執行此程式碼後,您將得到以下結果:
輸出
1 2 3 4 5
While 迴圈
while 迴圈會一直執行操作,直到特定的邏輯條件評估為真。以下是 while 迴圈的語法:
語法
while (condition) action
AWK 首先檢查條件;如果條件為真,則執行操作。只要迴圈條件評估為真,此過程就會重複。例如,下面的示例使用 while 迴圈列印 1 到 5:
示例
[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'
執行此程式碼後,您將得到以下結果:
輸出
1 2 3 4 5
Do-While 迴圈
do-while 迴圈類似於 while 迴圈,不同之處在於測試條件是在迴圈結束時評估的。以下是 do-while 迴圈的語法:
語法
do action while (condition)
在 do-while 迴圈中,即使條件語句評估為假,操作語句也至少執行一次。例如,下面的示例使用 do-while 迴圈列印 1 到 5 個數字:
示例
[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'
執行此程式碼後,您將得到以下結果:
輸出
1 2 3 4 5
Break 語句
顧名思義,它用於結束迴圈執行。這是一個示例,當總和大於 50 時結束迴圈。
示例
[jerry]$ awk 'BEGIN { sum = 0; for (i = 0; i < 20; ++i) { sum += i; if (sum > 50) break; else print "Sum =", sum } }'
執行此程式碼後,您將得到以下結果:
輸出
Sum = 0 Sum = 1 Sum = 3 Sum = 6 Sum = 10 Sum = 15 Sum = 21 Sum = 28 Sum = 36 Sum = 45
Continue 語句
continue 語句用於迴圈內部,跳過迴圈的下一個迭代。當您希望跳過迴圈內某些資料的處理時,它非常有用。例如,下面的示例使用 continue 語句列印 1 到 20 之間的偶數。
示例
[jerry]$ awk 'BEGIN { for (i = 1; i <= 20; ++i) { if (i % 2 == 0) print i ; else continue } }'
執行此程式碼後,您將得到以下結果:
輸出
2 4 6 8 10 12 14 16 18 20
Exit 語句
它用於停止指令碼的執行。它接受一個整數作為引數,該整數是 AWK 程序的退出狀態程式碼。如果沒有提供引數,exit 將返回狀態零。這是一個在總和大於 50 時停止執行的示例。
示例
[jerry]$ awk 'BEGIN { sum = 0; for (i = 0; i < 20; ++i) { sum += i; if (sum > 50) exit(10); else print "Sum =", sum } }'
輸出
執行此程式碼後,您將得到以下結果:
Sum = 0 Sum = 1 Sum = 3 Sum = 6 Sum = 10 Sum = 15 Sum = 21 Sum = 28 Sum = 36 Sum = 45
讓我們檢查指令碼的返回狀態。
示例
[jerry]$ echo $?
執行此程式碼後,您將得到以下結果:
輸出
10