Go to the first, previous, next, last section, table of contents.

関数定義の例

myprintという、番号を受け取って、それを特定の書式で表示するユーザ定義関数の例を次に示します。

function myprint(num)
{
     printf "%6.3g\n", num
}

説明のために、myprint関数を使うawkルールを示します。

$3 > 0     { myprint($3) }

このプログラムは、入力の中に正の数を含む3番目のフィールドを、特別な書式ですべて表示します。次の入力が与えられたとき、

 1.2   3.4   5.6   7.8
 9.10 11.12 13.14 15.16
17.18 19.20 21.22 23.24

このプログラムは、結果を書式化するために上の関数を使って、次のように表示します。

   5.6
  13.1
  21.2

次に示すのは、再帰関数の例として考えられたものです。これは文字列を逆向きに表示します。

function rev (str, len) {
    if (len == 0) {
        printf "\n"
        return
    }
    printf "%c", substr(str, len, 1)
    rev(str, len - 1)
}

Go to the first, previous, next, last section, table of contents.