スポットライトを使って誤字チェック

MacOS X Tigerにはスポットライトというメタ検索機能があります。これはキーワードを入力すると素早く該当するファイルを探してくれる便利な機能です。スポットライトを使えばエディタなどを使わなくても文章の校正に使えるのでは? と思って実際に使っていたりするのですが、やはりいちいち単語を入力して調べるのは面倒です。調べたい単語(使ってはいけない単語:バッドワード)をテキストファイルに登録しておいて、特定のフォルダ内を一括してチェックしてくれると便利そうです。
MacOS Xもいろいろインストールすると、結構まともな校正システムができるはずです。がインストールすることも面倒なので、ターミナルから実行できるものにしました。以下が実際のシェルスクリプトです。

#!/bin/bash
for kwd in `cat $1`
do
echo "${kwd}-----------------------------------------------------------------------"
mdfind "kMDItemTextContent = '${kwd}' && kMDItemDisplayName = '$2'" -onlyin $3
done

これをエディタで入力して文字コードをEUC、改行コードをLFにして保存します。とりあえずwordcheck.shとして保存したものとして進めます。アプリケーションフォルダ内にあるユーティリティフォルダ内にあるターミナルを起動します。
保存したファイルのあるフォルダに移動します。移動したら

chmod 755 wordcheck.sh

としてパーミッションを変更し実行できるようにします。
これは、以下のように使います。

./wordcheck.sh ./word.txt genkou.txt /

./word.txtがチェックする単語リストファイルがあるファイルのパスです。genkou.txtは調べるファイル名になります。最後の/は調べるフォルダのパスを指定します。
word.txtは以下のように調べたい単語を行単位で区切って書きます。

prototype.js
Ajax
Google
ブラウザ
です。
マウス

必ず文字コードはEUC、改行コードをLFにしてください。検索対象の文章はスポットライトが自動的に文字コードを判別して処理してくれるため特に文字コードを変換しなくても良いみたいです(自動判別なので、あまりに短い文章の場合は駄目かもしれません)。

結果をファイルとして保存したい場合には以下のように>の後に保存するファイル名(パス)を指定します。

./wordcheck.sh ./word.txt genkou.txt / > ./result.txt

ファイル名が決まっていない(ワイルドカードを指定したい)場合には以下のように*を指定します。この時には必ず"で囲んでください。

./wordcheck.sh ./word.txt "*" /




[サンプルをダウンロード]