awkで合計を出すぞぉ〜
プログラムで何行書いたのか知りたくなるのが世の中の常(いつから?
Linuxコマンドフル活用でプログラムの行数を知りたいです。
ってことで、道具
- find ファイルを探す
- wc テキストファイルの行数がわかる
- awk よくわからない
とりあえず、findとwcを組みあせてっと。
$ find -type f -exec wc {} \; 12 17 124 ./boot.S 13 33 239 ./Makefile 3 9 79 ./qemu.bat
wcの出力は、行数、単語数、文字数。で、プログラムの合計を出したいぞ〜
ふむふむ。簡単ですね・・・
info.awk
{print $0} {lines += $1} {words += $2} {chars += $3} END {print " " lines " " words " " chars}
$ find -type f -exec wc {} \; | awk -f info.awk 12 17 124 ./boot.S 5 22 100 ./info.awk 13 33 239 ./Makefile 3 9 79 ./qemu.bat 33 81 542
おぉ。出た!!ボクノスは33行に成長しました(笑
なんと,C言語風にも書ける。
{ print $0 lines += $1 words += $2 chars += $3 } END { print " " lines " " words " " chars }
馴染みやすい感じです。
なお、 AWKという名前は作者の3人の頭文字を並べたもので、Kは「プログラミング言語 C」の著者 Kerninghanです。Aは名著「データ構造とアルゴリズム」の著者の一人 Aho、Wは Weinbergerです。情報科学の三巨人の共作ですね。
すっげぇ!!暇があったらソースを読みたいと思います・・・ってよく考えたら、オリジナルのソース読めない。cygwinに付いてるやつはgawkなのですよハイ。
- 作者: A. V.エイホ,P. J.ワインバーガー,B. W.カーニハン,Alfred V. Aho,Peter J. Weinberger,Brian W. Kernighan,足立高徳
- 出版社/メーカー: 新紀元社
- 発売日: 2004/01
- メディア: 単行本
- 購入: 1人 クリック: 31回
- この商品を含むブログ (20件) を見る
暇があったら読みたいと思います。こっちは本物だし。