TeX文書の文字コードを一括してUTF8に変換する(2)

前に書いた

Sukarabe’s Easy Living » TeX文書の文字コードを一括してUTF8に変換する

の改良版。このまま実行したら、まず、ファイルの数が多すぎると文句言われた。そこで、xargs が一度に処理するファイルの数を制限することにした。例えば -n 10 とすれば、一度に10個ずつになる。ところが今度はいくつかのファイルが見つからないというエラーに遭遇。日本語ファイル名の場合、上手く行かないケースがあるようだが、検索するファイル名をSingle quotationではなくDouble quotationで括ることで解決。さらに、空白をファイル名の区切りとしないように設定。僕自身は空白を含むファイル名を使うことはないが、念のため。空白の代わりにヌル文字を区切りと使う。そのために、find に対して、-print0 というオプションで、ファイル名の最後にヌル文字を加える。そして、xargs のオプションとして -0 とすることで、ヌル文字を区切りと解釈する。

最終的には次のようになった。これは、カレント以下の hogehoge.tex たちを一括して UTF8 (BOMなし) に変換するもの。

find . -name "*.tex" -type f -print0 | xargs -n 10 -0 nkf -w -Lu --overwrite

これで、文字コードの変換に関しては一件落着かな。

コメントを残す

メールアドレスが公開されることはありません。