\ (MS-Windows の場合は
円マーク) を書く必要がある
# から行末まで
また、C と同様に printf も使えますが、() は通常省略できます。
以下にいくつか簡単な例を上げますが、C 言語の入門書に書かれていそうな 例題を AWK で解いてみることにします。
「Hello World」を出力
BEGIN{ printf "Hello world.\n" }
AWK には、単に文字列を 1 行改行をつけて出力する print という関数もあるので、
それを使えば、
BEGIN{ print "Hello world." }
とすることもできます。
なお、print は %d などの書式指定は受けつけません。
C だと、例えば以下のように書きます。
#include <stdio.h>
int main(void)
{
printf("Hello world.\n");
return 0;
}
比較すればわかりますが、AWK の方は C で (多分意味もわからずに)
書いている #include や main() return 等が
不要です。
1 から 100 までの和、12 から 1002 までの和を出力
BEGIN{
for(j=1;j<=100;j++){ x+=j; y+=j*j }
printf "和=%d, 自乗和=%d\n",x,y
}
x,y の初期値が設定してありませんが、その場合は 0 が初期値になります。
最後の出力部分は、単に数字だけ欲しいなら
print x,y
としてしまうことも可能です。
C だと例えば以下のようになります。
#include <stdio.h>
int main(void)
{
int j,x=0,y=0;
for(j=1;j<=100;j++){ x+=j; y+=j*j; }
printf("和=%d, 自乗和=%d\n",x,y);
return 0;
}
このように、
竹野茂治@新潟工科大学