« 画像の拡大縮小を手軽にAutomatorで | トップページ | マック用のフリーのHTMLエディタは何が良いか? »

2007年3月23日 (金)

コマンドラインから手軽にテキストのエンコード

最近Unixのコマンドラインの楽しさを覚え始めた同僚からけっこうこれはできるかあれはできるかというような質問を受けます。わたしも基本的には初歩+αぐらいしか知らないのですが、grepなんかを使い始めた人には仙人みたいな存在に感じるらしいです (苦笑)。今日のコマンドラインもそんな彼の質問の一つ。Windowsで作った大量のlatin-1のテキストをOSXに見合ったutf-8に変換したいけど良い方法はないかという質問でした。OSXでもコマンドラインだとutf-8で全てがうまくいくわけではないんですけどね。という本音はおいといて、OSXということと、コマンドラインで処理できれば良いというので、perlでしかもモジュールを使うという違法な方法を(といいつつ他の方法を知りませんし、調べていません ^^)紹介します。

perl -MEncode -ne '$butsu = encode("utf8", decode("iso-8859-1", $_)); print $butsu;' /Users/misa_bazooka/Desktop/moto_no_file.txt > Desktop/henkan_sareta_file.txt

斜体の部分を自分のものに取り替えればOKです。Encodeモジュールで他になにができるかはmanページで確認してください。で、ファイルがたくさんある時は下記のようにシェルのfor〜; do〜; done;を使うと良いでしょう。シェルの文の部分は太字にしてあります。

for i in /Users/misa_bazooka/Desktop/LATIN_1/*.txt; do perl -MEncode -ne '$butsu = encode("utf8", decode("iso-8859-1", $_)); print $butsu;' $i > /Users/misa_bazooka/Desktop/UTF_8/`basename $i .txt`_utf8.txt; done

例だと、デスクトップのLATIN_1フォルダーにあるlatin-1のテキストファイルを全てutf-8に変換し、basenameコマンドを使って名前に_utf8を追加してからデスクトップのUTF_8というフォルダーに出力します。

« 画像の拡大縮小を手軽にAutomatorで | トップページ | マック用のフリーのHTMLエディタは何が良いか? »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: コマンドラインから手軽にテキストのエンコード:

« 画像の拡大縮小を手軽にAutomatorで | トップページ | マック用のフリーのHTMLエディタは何が良いか? »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

最近のトラックバック