あるディレクトリ以下の全ファイルの文字コードを一括変換したいことがあります。
そんなときは以下のコマンドで処理します。
(カレントディレクトリ以下の全ファイルを UTF-8 に変換する場合)
$ find . -type f | xargs -n 10 nkf -w --overwrite
まず、find で ファイルを抽出 (-type f)、
抽出した結果を xargs に引数として渡し、nkf で処理します。
xargs のオプション "-n 10" は、引数を 10 個ずつ渡すの意。
ファイル数が多い場合は、引数を渡しきれないので、追加します (ファイル数が少ない場合は不要)。
以下でも同じ結果が得られますが、xargs を使った方が処理は速いです。
$ find . -type f -exec nkf -w --overwrite {} \;
nkf のオプション
オプション | 意味 |
-e | EUC に変換 |
-s | SJIS に変換 |
-w | UTF-8 に変換 |
-j | JIS に変換 |
-Lu | UNIX 改行コード (LF) へ変換 |
-Lw | Windows 改行コード (CR+LF) へ変換 |
-Lm | (Macintosh 改行コード (CR) へ変換) |
--overwrite | ファイルを上書き |
● find, xargs, 個ずつ, nkf, 大量
0 件のコメント:
コメントを投稿