需要将UTF8和UTF16 .csv文件转换为ASCII

时间:2013-09-13 13:04:16

标签: linux shell unix utf-8

我有脚本将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

由于

1 个答案:

答案 0 :(得分:2)

使用encafile -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

请先在测试目录中使用测试文件进行尝试。

file -i对于 if [[ $(file -i "$i") != *ascii* ]]; then 我认为也可以这样做:

{{1}}