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

使用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
于 2013-09-13T13:37:33.350 回答