目次へ | 前の項目へ |
awk とは、開発者三人の名前の頭文字を取ったもので、オークと読みま す。使用はコマンド形式でもスクリプトでも可能で、他の言語のように if による条件分岐や for などのループ、printなどの出力 命令なども使用できます。特徴は、表のようにスペースやカンマで区切られたデー タからフィールドと呼ばれる区分わけを行ってデータを扱えることです。次の例 で見てみましょう。
下の表は、最近四ヶ月間の三人の売り上げデータ成績だと思ってください。
Suzuki 100 80 90 100 Tanaka 60 80 50 70 Yamada 80 100 80 90
$ awk '{print $1,($2+$3+$4+$5)/(NF-1)}' data.txt
実行結果は次のようになるはずです。
Suzuki 92.5 Tanaka 65 Yamada 87.5 |
これまでいろいろとプログラミングを行ってきましたので、処理自体はなんとなく お分かりになるのではないでしょうか。元のデータをフィールドに分けてそれらを $1 から $5 までの変数に格納し、一行ごとに計算を行ってい ます。また、NFというのはフィールドの数を表す定数ですので、名前の部分をの ぞくため、平均の計算ではフィールド数から1を引いて割り算しています。
ページの先頭へ | 目次へ | 前の項目へ |