電網郊外散歩道

本と音楽を片手に、電網郊外を散歩する風情で身辺の出来事を記録。退職後は果樹園農業と野菜作りにも取り組んでいます。

UTF-8で記録した備忘録ファイルをWindows7/8のDOS窓で処理する方法

2016年01月24日 06時05分10秒 | コンピュータ
1989年からずっと、テキストファイルで備忘録を記録してきました。当時はMS-DOS環境でしたので、テキストファイルの文字コードはShift-JISでした。Windows3.1/95/98/2000さらにXPでも、基本的に文字コードはShift-JISで共通でした。この頃、Vine-Linux も併用していましたが、こちらは文字コードが EUC が基本で、テキストデータ処理の際には、nkfで文字コードや改行コードなどを変更する必要がありました。その後、Ubuntu-Linuxを中心に使うようになり、文字コードは UTF-8 になりました。幸い、Windows7/8 でも文字コードはUTF-8でしたので、Ubuntu でも Windows でも、同じUSBメモリに文字コードを意識することなく記録することができました。これをテキストデータ処理で利用するには、Ubuntu上でawkスクリプトで十分に間に合いました。

ところが、新調したWindows7/8のパソコンのDOS窓では、テキストエディタを用いて UTF-8で記録したテキストファイルを gawk 等で処理することができません。Windows7/8のDOS窓では、従来のWindowsとの互換性のために、Shift-JISコードのテキストファイルしか扱えないようなのです。では、WindowsのDOS窓で備忘録ファイルをテキストデータ処理するにはどうすればよいかというと、これは要するにnkfコマンドでSHIFT-JISコードに変換してから処理すればよい、ということになります。たとえば、nkf32.exe をダウンロードしてパスの通ったディレクトリに置き、 nkf.exe にリネームしておきます。また、gawk for Windows も同様にダウンロードして gawk.exe をパスの通ったディレクトリに置いておきます。その上で、

> nkf book.awk > booksj.awk
> nkf memo2015.txt > tempsj.txt

のようにスクリプトファイルとデータファイルを準備しておき、

> gawk -f booksj.awk tempsj.txt | sort > booksj.txt

のように処理すれば、Shift-JIS コードで書かれた一年間の読書記録の日付順リストが得られます。その結果は、次の通り。


117冊
2015/01/04 佐伯泰英『失意ノ方居眠り磐音江戸双紙(47)』読了
2015/01/06 山本一力『ジョン・マン~望郷編』再読了
~略~
2015/12/19 宮城谷昌光『楽毅(三)』再読了
2015/12/23 宮城谷昌光『楽毅(四)』再読了


ふむふむ。では、映画の記録はどうか。

>gawk "$2~/映画/{print $1,$2}" tempsj.txt | sort > movies.txt
>type movies.txt
2015/01/25 映画「バンクーバーの朝日」を観る
2015/02/22 映画「KANO1931~海の向こうの甲子園」を観る
2015/11/23 映画「いしゃ先生」先行上映を観る
2015/12/24 映画「杉原千畝」を観る

となります。

文字コードの変換を意識しなければならない分だけ面倒ですが、なんとか実行可能なようです。こうしてみると、UTF-8 でデータを統一でき、しかも文字コードを意識せずにそのままテキストデータ処理が実行可能な Ubuntu-Linux の環境というのは、かなり便利なものだと感じます。
ちなみに、下の画像は Ubuntu-Linux のターミナルでのもの。



ユーザー名はぼかしてありますが、パイプで接続した tail コマンドで末尾の3行のみを表示させることができたり、Windows の DOS窓と比べて、ずいぶん細やかな工夫配慮と Unix系の歴史が感じられます。

コメント