Home > Linux > Linuxコマンドで複数ファイルの文字コードを一括変換

Linuxコマンドで複数ファイルの文字コードを一括変換

Sponsored Link

Linux系OSのfedora6のデフォルト文字コードはUTF8なので、先日久々に参照したEUCのC++ソースコード中のコメントや出力が文字化けしていました。

そこで、ファイルの文字コードをEUCからUTF8に変換するコマンドを調べたところ、PHPプロ!TIPS+のページの中程にそれに関するコマンドがあったので参考にしました。

$find -name '*.cc' | xargs nkf --overwrite -w

↑は拡張子がccの全てのテキストファイルの文字コードをutf8に変換します。

$find . -type f -print0 | xargs -0 nkf --overwrite -w -Lu

↑このコマンドの意味を簡単に示しますと、まずファイルを検索するfindコマンドで、カレントディレクトリ「.」から通常ファイル「-type f」を探索し出力します「-print0」(常に真)。

% find [検索開始ディレクトリ] (option)
参考:UNIXコマンド [find]

ここで、findコマンドの結果をパイプ「|」をもって渡し、そこでxargsでコマンドを実行します。ここでxargsは以下の機能を持ちます。

xargs[えっくす・あーぐす]
標準入力から引数を読み込み、指定のコマンドを実行するコマンド
参考:UNIXの部屋 検索:xargs (*BSD/Linux/Solaris)

文字コード変換コマンドである nkf のオプション--overwriteは変換した文字コードのデータを元のファイルに上書きするもので、-wが文字コードをUTF8に指定するものです。ちなみに、EUCに変換したい場合は-e、Windowsで使われているSJISにする場合は-sを代わりに指定します。

最後の-Luオプションは改行コードをLFに指定するものです。

関連記事


 Sponsored Link

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.yukun.info/blog/2008/01/euc-to-utf8.html/trackback
Listed below are links to weblogs that reference
Linuxコマンドで複数ファイルの文字コードを一括変換 from Yukun's Blog

Home > Linux > Linuxコマンドで複数ファイルの文字コードを一括変換

バックナンバー
最近のコメント
最近のトラックバック
メタ情報

Return to page top