電網郊外散歩道

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

プログラミング言語は今も有効か~awkのパーソナルな実用性

2011年04月23日 06時04分29秒 | コンピュータ
プログラミング言語は、パーソナルな用途で、今も有効性を持つのでしょうか。私の場合、答えはイエスです。

これまで、個人的な利用には、もっぱらawk など小型のスクリプト言語を愛用してきました。用途は、日付と題名、記事内容からなるテキストファイル備忘録を、三つのフィールドからなる不定長データベースと見立て、これを検索し加工して結果を返すプログラマブル・フィルタの役割です。

Linux の場合は、もともと awk が含まれていることが多いので、コンソールを立ち上げ、すぐに利用することができます。これに対し、Windows の場合は、awk 言語を新たに導入する必要があります。以前は、DOS の時代から愛用してきたフリーソフトの jgawk.exe を利用してきましたが、ある時、偶然にも Windows 用 gawk.exe を発見。これで、DOS 時代から記録してきたテキストファイル備忘録と awk スクリプトを引き継ぐことができました。

参考までに、Windows における AWK 言語を使用するまでの手順を略記しておきます。

(1) Windows 用 gawk をダウンロード
(2) 解凍して gawk.exe をパスの通ったフォルダに置く
(3) awk スクリプトを置くフォルダを作成:例えば d:\mydata\awk
(4) マイコンピュータを右クリックし、プロパティの中から「環境変数」ボタンを探し、ユーザー環境変数として AWKPATH を追加し、値としてスクリプトを格納するフォルダ名 d:\mydata\awk 等を指定する
(5) サンプルデータ memo2011.txt を作成し、動作を確認する



例として、例えばテキストファイル備忘録から読了書名の一覧を得るスクリプトをご紹介します。

# book.awk 読了数のカウント
$2~/読了/{
print $1,$2
counter ++
}
END{print counter,"冊"}

メモ帳などのテキストエディタでこういう内容のファイルを作り(copy & paste)、book.awk というファイル名を付けて awk スクリプト用のフォルダに保存します。

goo ブログの仕様で、スクリプトのインデントは消えてしまいますが、「日付と題名、内容」からなる不定長テキストデータベースから題名に「読了」という文字を含むデータを抽出するという実用上は、問題はないでしょう。

そして、コマンドプロンプトを立ち上げて、

>gawk -f book.awk memo2011.txt

とすれば、memo2011.txt というサンプルデータ中の題名(件名)に「読了」という文字が含まれる件数を報告してきます。結果を temp.txt というファイルに保存したければ、

>gawk -f book.awk memo2011.txt > temp.txt

とします。

なお、当ブログの主要な awk 関連記事は、以下のとおりです。

雪椿とawkスクリプト~2004年12月
テキストファイル備忘録を始めたのは~2008年12月
2008年の備忘録ノートの決算~2009年1月
バックアップデータから日付と記事タイトル一覧を抽出する~2010年7月
通勤の音楽に季節性はあるか~その2~2010年12月
コメント