さて,前のスクリプトではあまりにも単純すぎるので,せめて,出力されたものが何かくらいは表示したい。そこで次のように修正する。
#!/usr/local/bin/gawk -f

{
	x += $0
}

END {
	print "N =", FNR
	print "Mean =", x/FNR
}

 print という命令は,その後に続く内容をモニタに表示するものである。表示したい文字は,文字の前後をダブルクオートでくくって指定し,変数の値や,計算結果を表示するときは単に変数名や計算式を指定すればよい。複数個の内容を表示するときはそれらを,カンマで区切って列挙する。

例に示したスクリプトでは,

	print "N =", FNR
は,まず,「N =」という文字を表示して,FNRの値を表示する。 同様に,
	print "Mean =", x/FNR
は,「Mean =」という文字を表示してから,x/FNR の値を表示する。

このスクリプトを実行すると,表示は以下のようになる。

	N = 10
	Mean = 5.5

注意深い人は,=の後に空白が挿入されていることに気付くだろう。もし,

	print "N =" FNR
のように,表示したいものをカンマで区切らなかった場合には,
	N =10
のように表示される。このとき,表示する要素は1個,すなわち "N =" FNR であると解釈される。これが表す意味は,「N =という3文字とFNRが表す数値を文字になおしたものを連結した文字列」である。
 例えば,
	print "A", "BCD", "efg", "HIJKL"
というスクリプトでは,「A BCD efg HIJKL」という文字列が表示され,
	print "A" "BCD" "efg" "HIJKL"
というスクリプトでは,「ABCDefgHIJKL」という文字列が表示される。
●前へ戻る   ●次へ進む
Last modified: May 15, 2002

E-mail to Shigenobu AOKI