青空文庫をコマンドラインで読む(SJIS->UTF8)

コマンドラインのキー操作に慣れると、いろんなことをコマンドラインで行いたくなりますが、読書もその一つです。
青空文庫の夏目漱石の小説「こころ」をダウンロードして読みたいと思います。

~$ sudo apt-get install unzip
~$ wget http://www.aozora.gr.jp/cards/000148/files/773_ruby_5968.zip
~$ ls
773_ruby_5968.zip
~$ 

zip圧縮されていますので、unzipします。unzipコマンドがなければapt-get installでインストールしておきます。また、文字コードをnkfで確認しておきます。

~$ apt-get install unzip
~$ unzip 773_ruby_5968.zip 
~$ nkf --guess kokoro.txt 
Shift_JIS (CRLF)
~$ 

Shift_JISでした。linuxのコマンドラインで読むためにUTF-8に変換しましょう。

~$ nkf -u kokoro.txt > kokoro_utf8.txt
~$ nkf --guess kokoro_utf8.txt 
UTF-8 (CRLF)

これで文字コードがUTF-8になりました。小説が読めるか一部を抽出してみます。

~$ sed -n 100p kokoro_utf8.txt 
 先生は何とも答えなかった。しばらくしてから、「私のは本当の墓参りだけなんだから」といって、どこまでも墓参《ぼさん》と散歩を切り離そうとする風《ふう》に見えた。私と行きたくない口実だか何だか、私にはその時の先生が、いかにも子供らしくて変に思われた。私はなおと先へ出る気になった。
~$ 

さっそく読んでみましょう。
せっかくなので、bashを使ってEnterキーでスクロールするようにしておきます。

~$ for i in `seq 23 1595`;do echo -e "\n\n\n\n\n";sed -n ${i}p kokoro_utf8.txt ;read;done

上記のコマンドの23、1595という数字は、テキストの23行目〜1595行目の意味です。
前行と区別するために、echoで改行をたくさんいれています。
readコマンドはEnterキーの入力まちを行うために使用しています。

結果は以下の画像のようになります。
kokoro

コメント

タイトルとURLをコピーしました