awkでファイル操作
awkはlinuxコマンドのように使えるけど、実は言語!
ファイル操作のために、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とかも使いこなしたいね。