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