\
(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; }
このように、
竹野茂治@新潟工科大学