木曜日, 9月 12, 2019

テキストファイルの文字コード、改行コードを変換

カレントディレクトリ以下のファイルの文字コードをシフトJISからUTF-8に、改行コードをCR+LFからLFに変換する。
また、ファイル内の文字列Windows-31JまたはShift_JISをUTF-8に置換する。

$ find . -type f -print0 | xargs -0 perl -MEncode -i.bak -pe 'Encode::from_to($_,"cp932","utf-8"); s/\r\n/\n/g; s/(Windows-31J|Shift_JIS)/UTF-8/g;'
$ find . -name "*.bak" -print0 | xargs -0 rm -f