wc -w
にかけるだけである。
図や注釈は全て除いたが、
Scheme
のコードは
html
から除けないために
word count
に含まれている。
#!/bin/sh for i in `seq 9 35` do # curl https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-$i.html > book-$i.html recode HTML..UTF-8 < book-$i.html\ | sed -En '/<body>/,/<hr>/{s/(&npsp;|Â|Ã)//g;/<table/,/<\/table>/d;s/<[^>]*>//g;p;}'\ | wc -w > wc-$i done cat wc-* | awk -Ft '{sum+=$1}END{print sum}'ちなみにこの結果は
$ ./count.sh 190643であり、約 19 万語である。
※(2019-01-10追記) Scheme コードを除いた。それに伴い消しすぎた箇所を復活させる。たった3箇所なので手動で修正できた。
for i in `seq 9 35` do # curl https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-$i.html > book-$i.html recode HTML..UTF-8 < book-$i.html\ | sed -En '/<body>/,/<hr>/{s#(&npsp;|Â|Ã)##g;/<table/,/<\/table>/d;s/<[^>]*>//g; /We can generate more and more terms of the stream to get better and/,/exercise 3\.64\.\)/p; # text 1 /This gives us a stream of better and better approximations to/,/between 3\.284 and 3\.017/p; # text 2 /^\(define x 3/,/\(define x 3\) is not a combination\.\)/p; # text 3 /^\(define/,/^$/d;p;}'\ # deleting code | wc -w > wc-$i done cat wc-* | awk -Ft '{sum+=$1}END{print sum}'この実行結果は
$ ./count.sh 145091なのでこの値をそのまま使うことにする (まだ読んでないけど)。 コードはこの差分なので、語数にして4.6万語、つまりまあ1/4から1/5はコードだというわけだ。
0 件のコメント:
コメントを投稿