2

UTF8 形式の .csv ファイルを ASCII 形式に変換するスクリプトがあります。今、私はUTF16のファイルも変換したかったのですが、ファイルがASCIIの場合はそのままにしておきます。以下のコードを使用して、UTF8 と UTF16 を個別に変更しています。単一のスクリプトでこれを行うのに役立ちます。

#/bin/bash
for i in *.csv
do 
iconv -c -f  UTF-8 -t ISO-8859-1 $i -o $i."utf8"
mv $i."utf8" $i
done

ありがとう

4

1 に答える 1

2

encaまたはを使用file -iして、ファイルの形式を検出します。

例:

#/bin/bash
for i in *.csv
do
    if [[ $(enca -L none "$i") != *ASCII* ]]; then
        iconv -c -f  UTF-8 -t ISO-8859-1 "$i" -o "$i.utf8"
        mv "$i.utf8" "$i"
    fi
done

最初にテスト ファイルを含む test ディレクトリで試してください。

私はそれfile -iが次のようにもできると思うからです:

    if [[ $(file -i "$i") != *ascii* ]]; then
于 2013-09-13T13:37:33.350 に答える