Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題147

問題147 単語の出現頻度

ブログ記事から日本語の単語を抜き出し、出現頻度順に並べる問題だった。ページをダウンロードして英数字と記号を除去すればすぐできると思ったが、除去してはいけないものもあることに後で気が付いた。また随分と雑なことをしてしまった。

解答例は

cat page | grep -zoP '<td[^<]*>.*?' | tr \\0 \\n | sed -E 's;<[^<]*>;;g' | mecab -E '' | awk '{a[$1]++}END{for(i in a)print i,a[i]}' | sort -k2,2nr

となる。先にcurlでダウンロードしたデータをpageに保存している。目当てのデータは<td>で挟まれたところにある。多分テキストデータの略だろう。この部分がブログ記事として目に見える形になる。