Linux脚本自动将文件类型转换为UTF8

时间:2014-04-11 01:58:13

标签: linux shell utf-8

我处在一个紧张的地方,可以使用一些linux shell脚本来帮助将一个充满管道分隔文件的目录从原始文件编码转换为UTF-8。源文件是US-ASCII或ISO-8859-1文件编码。我能想出的最接近的事情是:

iconv -f ISO8859-1 -t utf-8 * > name_of_utf8_file

这会将所有文件压缩到单个文件中,这对于此应用程序来说是不需要的。问题是我需要同时指定源文件和目标文件编码,因此对于一半文件我不知道它的作用。有没有办法使用file -i之类的命令编写shell脚本。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:3)

这是,(没有经过适当测试,需要警告:),一种方法:

也许首先尝试使用一个小子集 - 这更像是一个思维示例,而不是一个交钥匙解决方案。

for i in *
do 
  if $( file -i "${i}"|grep -q us-ascii ); then 
    iconv -f us-ascii -t utf-8 "$i" > "${i}.utf8"
  fi 
  if $( file -i "${i}"|grep -q iso-8859-1 ); then 
    iconv -f iso8859-1 -t utf-8 "$i" > "${i}.utf8"
  fi 
done