「データ処理に便利な機能」の章でもお話ししたように、AWKでは変数に型の概念がありません。・・・と言うか、全て文字列変数であると考えても良いでしょう。
それなのに数値演算もできるのです。AWKが勝手に数値であるか文字列であるかを判断し、演算によって自動的に型変換をするのです。
それでは実験してみましょう。
以下のスクリプトを作成して実行させてください。実行に必要な手順はもう大丈夫ですね。
BEGIN {
a = "abc";
b = 10;
c = a + b;
d = a b;
print "a=" a, "b=" b, "c=" c, "d=" d;
}
a=abc b=10 c=10 d=abc10
続行するには何かキーを押してください . . .
a = "abc";
b = "10";
a=abc b=10 c=10 d=abc10
続行するには何かキーを押してください . . .
a = "3.15";
b = "10.55";
a=3.15 b=10.55 c=13.7 d=3.1510.55
続行するには何かキーを押してください . . .
a = 3.15;
b = 10.55;
a=3.15 b=10.55 c=13.7 d=3.1510.55
続行するには何かキーを押してください . . .
a = "3.15abc";
b = "10.55xyz";
a=3.15abc b=10.55xyz c=13.7 d=3.15abc10.55xyz
続行するには何かキーを押してください . . .
a = "a3.15bc";
b = "10.55xyz";
a=a3.15bc b=10.55xyz c=10.55 d=a3.15bc10.55xyz
続行するには何かキーを押してください . . .
a = "3.15abc";
b = ".55xyz";
a=3.15abc b=.55xyz c=3.7 d=3.15abc.55xyz
続行するには何かキーを押してください . . .