AWK-ループ
この章では、適切な例を使用してAWKのループについて説明します。ループは、一連のアクションを繰り返し実行するために使用されます。ループの実行は、ループ条件が真である限り続行されます。
Forループ
の構文 for ループは−
構文
for (initialization; condition; increment/decrement)
action
最初は、 forステートメントは初期化アクションを実行してから、条件をチェックします。条件が真の場合、アクションを実行し、その後、インクリメントまたはデクリメント操作を実行します。ループの実行は、条件が真である限り続行されます。たとえば、次の例では、を使用して1〜5を出力します。for ループ-
例
[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'
このコードを実行すると、次の結果が得られます-
出力
1
2
3
4
5
Whileループ
ザ・ whileループは、特定の論理条件がtrueと評価されるまで、アクションを実行し続けます。これがの構文ですwhile ループ-
構文
while (condition)
action
AWKは最初に状態をチェックします。条件が真の場合、アクションを実行します。このプロセスは、ループ条件がtrueと評価される限り繰り返されます。たとえば、次の例では、を使用して1〜5を出力します。while ループ-
例
[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ループの場合、条件ステートメントがfalseと評価された場合でも、アクションステートメントは少なくとも1回実行されます。たとえば、次の例では、を使用して1〜5の数値を出力します。do-while ループ-
例
[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'
このコードを実行すると、次の結果が得られます-
出力
1
2
3
4
5
ブレークステートメント
その名前が示すように、ループの実行を終了するために使用されます。合計が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 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
終了ステートメント
スクリプトの実行を停止するために使用されます。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