awkでファイル操作

awklinuxコマンドのように使えるけど、実は言語!
ファイル操作のために、AT&Tのやつらに開発されたんだ。今ではGNUの標準ソフトウェアだよ。
awkはそれぞれ、開発者の頭文字をとったもの。単純だね。

それでは、前回やった複数のファイルがあって、それぞれ単語、その横に数字で構成された
ファイルから、その単語ごとの合計を一発で表示するスクリプトを書いてやろう。

これだ。
one two three!

makoto@Ichiro ~/workspace/linux_command/count_words_occurance
$ cat sample.txt
makoto 3
banana 2
book 94
cando 100
makoto 7


makoto@Ichiro ~/workspace/linux_command/count_words_occurance
$ cat member.txt
banana 2
book 6
nasu 99
lucky 777
makoto 7


makoto@Ichiro ~/workspace/linux_command/count_words_occurance
$ cat
member.txt   sample.txt   wordmap.awk

makoto@Ichiro ~/workspace/linux_command/count_words_occurance
$ cat wordmap.awk
#!/user/bin/awk -f

BEGIN{
        print "hello"
}

{
dict[$1] += $2

}


END{
        for( key in dict){
                print key " is " dict[key] " . thanks!"
        }
}



makoto@Ichiro ~/workspace/linux_command/count_words_occurance
$ gawk -f wordmap.awk *.txt
hello
 is 0 . thanks!
book is 100 . thanks!
makoto is 17 . thanks!
nasu is 99 . thanks!
banana is 4 . thanks!
cando is 100 . thanks!
lucky is 777 . thanks!

makoto@Ichiro ~/workspace/linux_command/count_words_occurance

いやー、楽しいね。
sedとかも使いこなしたいね。