Wordle(3)からの続き
Wordleをやっていると,そもそも英語の文章で出てくる単語のうち5文字である確率はどんなものか,また,最もよく出現するのは何文字の単語なのか,などなどが気になるようになった。
これを調べるために,与えられたテキストファイルやpdfファイルから単語を切り出して,その文字数の分布を調べるためのシェルスクリプトを作ってみた。
case \$3 in昨日のスクリプトを少しだけ修正すればよかったが,ポイントは,シェルスクリプト中の反復の記述法である。繰り返し変数は$をつけて,perlのワンライナーに受け渡すことができた。あとはこれを使って実験してみれば良いのだが,それはまた次回のお楽しみ。
"txt")
echo "txt";
;;
"pdf")
echo "pdf";
pdftotext \$2.pdf;
;;
*)
echo "undefined";
;;
esac
for ((i=1 ; i<=\$1 ; i++))
do
perl -nse 'while (/\b[a-z]{\$num}\b/ig) {print "\$&\n";}' -- -num=\$i \$2.txt | tr A-Z a-z > tmp.txt
cat tmp.txt | wc -l >> \$2-\s1.txt;
cat tmp.txt | sort | uniq | wc -l >> \$2-\s2.txt;
rm tmp.txt
done