web-dev-qa-db-ja.com

* nixコマンドラインツールを使用して複数のファイルをUTF-8エンコードに変換する方法を教えてください。

可能な重複:
エンコードまたは改行用にファイルをバッチ変換します

与えられた文字セットからUTF-8エンコーディングに変換したいテキストファイルがたくさんあります。

これを一気に行うために使用できるコマンドラインツールまたはPerl(または選択した言語)のいずれかがありますか。

45
jason

iconvは多くの文字エンコーディング間の変換を行います。それでちょっとしたbashマジックを追加すれば、私たちは書くことができます

for file in *.txt; do
    iconv -f ascii -t utf-8 "$file" -o "${file%.txt}.utf8.txt"
done

これは、iconv -f ascii -t utf-8で終わるすべてのファイルに対して.txtを実行し、記録されたファイルを、.utf8.txtではなく.txtで終わる同じ名前のファイルに送信します。

ASCIIはUTF-8のサブセットなので、これが実際にあなたのファイルに何かをするわけではありませんが、エンコーディング間の変換方法についてのあなたの質問に答えることです。

55
Vinko Vrsalovic