Killing Time 2nd

備忘録、日々の徒然想いを残します。

漢字コード、改行コード一括変換

なんか、普段使わないせいかすぐに忘れてしまう。年齢のせいにはしたくないだが。

  • 漢字コード

% nkf -e in-file
EUCコードで出力。-sでShift JIS、-jでJIS

  • 漢字コード+改行コード

% nkf -e in-file | tr \\r\\n \\n
DOSのファイル(Shift JISで改行コード、\r\n)をUNIXEUCコードで改行コード\nに変換する。
% nkf -e -Lu in-file
でも可。-LwでWindows形式(\r\n)、-Lmでマッキントッシュ形式(\r)。

  • 一括変換する(Bsh系のとき)

一旦変換後のファイルをeucに入れておく。
% mkdir euc
% for f in *.{cgi,pl} ;
do;
nkf -e -Lu $f > $f.tmp;
mv $f.tmp $f;
done

nkfには--overwriteで直接上書きする機能もあるので(知らなかった!)、

% nkf -e -Lu --overwrite *.txt

でもいいみたい。但しオーナーがコマンド実行者に変更されているので注意。