今回は「字数カウント」について。ワープロソフトの付随機能などと片付けられてしまいがちだが、いざ必要なときにはそのソフトを起動しなければならないなど、意外に扱いにくい。どのアプリケーションを利用していても、どの状況下においても呼び出せれば……ということで、2つの解決策を提示してみたい。
Terminalで字数をカウント
まずは、Terminalでコマンドを利用する方法からはじめてみよう。紙幅の都合で結論からいうと、echoコマンドで標準出力にアウトプットした文字列(あらかじめ数えたい文字列をコピー&ペーストしたもの)をwcコマンドにパイプし、そこで字数カウントしようというものだ。
手順はかんたん。Safariなど適当なアプリケーションで数えたい文字列をコピーし、Terminalにタスクを移す。そこで「echo -n "」と入力してペーストを実行、「"」で閉じればechoコマンドの部分は一件落着。これだけでは何の意味もないので、続けてパイプの記号「|」を入力、さらに文字数をカウントする「wc -m」を入力してコマンドライン全体を実行(enterキー押下)、という流れだ。
なお、echoコマンドの「-n」オプションは、標準出力の最後に改行コードを含めないために必要。このオプションなしでは1文字多くカウントされてしまう。wcコマンドの「-m」オプションは、文字数をカウントするためのもので、漢字などマルチバイト文字も英数字同様1文字としてカウントされる。
こう書くと面倒そうだが、実際にキー入力するのはスペース部分を含め20キャラクタに満たない。専用オンラインソフトを探す手間や、字数カウントのためだけにワープロソフトを起動する時間を考えればはるかに効率的だ。
ただし、途中に改行を含む場合はペーストがうまくいかないことがある。特にWebページのテキストをコピーした場合、そのままペーストすると意図せず改行されてしまいがちなので、段落単位で区切ってコピー&ペーストしたほうがいいだろう。ちなみに筆者の場合、雑誌の見出しのように「20字」とか「32字」といった字数指定を受けるテキストはEmacsの「M-x count-lines-region」(Command-Shift-「=」)でカウントしているが、Emacsまで話を広げると収拾がつかなくなるので紹介だけに留めておく。
「サービス」を使う方法
理屈は不要、とにかく字数だけカウントできればいい、という場合には「サービス」がお勧めだ。もちろんシステム標準では提供されないため、筆者が作成したサービス(文字をカウント.zip、解凍すること)をライブラリ→Servicesフォルダ(~/Library/Services)へコピーすること。これだけで、サービスを利用可能なアプリケーション -- Cocoa APIを利用する大半がそうだ -- から直接呼び出せる「文字をカウント」が利用できるようになる。
Safariを例に使い方を説明してみよう。字数をカウントしたい部分を選択(ドラッグして水色に表示)し、メニューバーから「Safari」→「サービス」→「文字をカウント」の順に選択すれば、単語数と文字数が記されたダイアログが表示される。Controlキーを押しながらクリックしてコンテキストメニューを表示し、そこから「文字をカウント」を選択してもいい。
なお、動作確認はSafariとメール、プレビュー(PDF文書)、テキストエディット、そしてFinderで確認している。Pages組み込みの字数カウント機能とも比較したが、途中に含まれる改行を1字として数える点(Pagesではカウントしない)を除けば結果は一致していた。文中の改行を取り除く処理は実装していないので、できるだけ改行なしのテキストで利用していただきたい。