SOFTELメモ Developer's blog

文字コード変換 iconvをまとめて一括適用

2019/05/18 linux

文字コード変換には、Linuxのコマンド iconv が使える。

iconv -f EUC-JP -t UTF-8 元のファイル.html
iconv -f EUC-JP -t UTF-8 -o 変換後ファイル名.html 元のファイル.html

など。

ここで、ファイル1個ずつじゃなくて、まとめて変換したいときは?

find -exec で、元のファイルを書き換えてしまってよかったら、こんなふうにできる。

$ find /tmp/www -name "*.html" -exec bash -c 'echo {} && iconv -t utf8 -f eucjp {} > {}.new && mv {}.new {}' \;

{}の場所には検索したファイル名が入る。; はコマンドの終了を表すが、シェルに「;」を解釈させず、find へ「;」を渡すためにエスケープしてある。また、「{}」と「\」の間には必ずスペースを空けなくてはならない。

関連するメモ

コメント