Awk-loops
提供:Dev Guides
AWK-ループ
この章では、AWKのループと適切な例を説明します。 ループは、一連のアクションを繰り返し実行するために使用されます。 ループ条件が真である限り、ループの実行が継続されます。
ループ用
*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* ループは、特定の論理条件がtrueと評価されるまでアクションを実行し続けます。 *while* ループの構文は次のとおりです-
構文
while (condition)
action
AWKは最初に条件をチェックします。条件が真の場合、アクションを実行します。 このプロセスは、ループ条件がtrueと評価される限り繰り返されます。 たとえば、次の例では、 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* * loopの構文は次のとおりです-
構文
do
action
while (condition)
*do-while* ループでは、条件ステートメントがfalseと評価された場合でも、アクションステートメントは少なくとも1回実行されます。 たとえば、次の例では、 *do-while* ループを使用して1〜5個の数字を出力します-
例
[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 はステータス0を返します。 合計が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