我有脚本将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
由于
答案 0 :(得分: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
请先在测试目录中使用测试文件进行尝试。
file -i
对于 if [[ $(file -i "$i") != *ascii* ]]; then
我认为也可以这样做:
{{1}}