Awk-control-flow

提供:Dev Guides
移動先:案内検索

AWK-制御フロー

他のプログラミング言語と同様に、AWKはプログラムのフローを制御する条件ステートメントを提供します。 この章では、AWKの制御ステートメントと適切な例を説明します。

ifステートメント

単純に条件をテストし、条件に応じて特定のアクションを実行します。 以下に示すのは、 if ステートメントの構文です-

構文

if (condition)
   action

また、以下に示すように中括弧のペアを使用して複数のアクションを実行することもできます-

構文

if (condition) {
   action-1
   action-1
   .
   .
   action-n
}

たとえば、次の例では、数値が偶数かどうかを確認します-

[jerry]$ awk 'BEGIN {num = 10; if (num % 2 == 0) printf "%d is even number.\n", num }'

上記のコードを実行すると、次の結果が得られます-

出力

10 is even number.

If Elseステートメント

*if-else* 構文では、条件がfalseになったときに実行されるアクションのリストを提供できます。
*if-else* ステートメントの構文は次のとおりです-

構文

if (condition)
   action-1
else
   action-2

上記の構文では、条件がtrueと評価されるとaction-1が実行され、条件がfalseと評価されるとaction-2が実行されます。 たとえば、次の例では、数値が偶数かどうかを確認します-

[jerry]$ awk 'BEGIN {
   num = 11; if (num % 2 == 0) printf "%d is even number.\n", num;
      else printf "%d is odd number.\n", num
}'

このコードを実行すると、次の結果が得られます-

出力

11 is odd number.

If-Else-Ifラダー

複数の if-else ステートメントを使用して、 if-else-if ラダーを簡単に作成できます。 次の例はこれを示しています-

[jerry]$ awk 'BEGIN {
   a = 30;

   if (a==10)
   print "a = 10";
   else if (a == 20)
   print "a = 20";
   else if (a == 30)
   print "a = 30";
}'

このコードを実行すると、次の結果が得られます-

出力

a = 30