身長の測定結果がファイルに用意されているとする。身長を,例えば5センチ区切りで,170センチ以上175センチ未満のものが何人いるかというような集計をするのは,以下のようなスクリプトになる。
#!/usr/local/bin/gawk -f { for (i = 1; i <= NF; i++) { $i = shapeup2($i) freq[$i]++ } } END { for (i in freq) { print i, freq[i] } } function shapeup2(data) { return int(data/5)*5 }
function shapeup2(data) { return int(data/5)*5 }の部分で,身長のデータを5センチ刻みで丸めた値に変換している。これくらい簡単な内容ならば関数にする必要はないと思うかも知れないが,場合によってはこれ以降もっと複雑な事前処理が必要にならないとも限らないので,関数に分けておくとよい。
● 実行してみる