Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有将 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
谢谢
使用enca或file -i来检测文件的格式。
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