您的位置:首页 > 运维架构 > Shell

【Bash】实现指定目录下的文件编码转换,以原文件名保存

2014-12-24 11:32 531 查看
文件名: encodeExchange.sh

Linux版本:

#!/bin/bash

fEncode=UTF-8
tEncode=GBK

#fEncode=GBK
#tEncode=UTF-8

files="Classes/*"

# convert file's encoding from GBK->UTF-8 or UTF-8->GBK
convertFileEncode()
{
if [ $# -lt 3 ]; then
echo "Usage: convertFileEncode <files> <fromEncode> <toEncode>"
else
files=$1
fEncode=$2
tEncode=$3
for i in `ls $files`
do
t=`file $i | grep UTF-8 | wc -l`
if [ "UTF-8" = $fEncode -a $t -eq 1 ] || [ "UTF-8" = $tEncode -a $t -eq 0 ] ; then
iconv -f $fEncode -t $tEncode $i -o $i
echo "iconv -f $fEncode -t $tEncode $i -o $i"
fi
done
fi
}

convertFileEncode "$files" $fEncode $tEncode


 在Mac OS X中发现 iconv 命令并不认识"-o"选项,所以真正转换那句要改成如下形式:

iconv -f $fEncode -t $tEncode $i > tmp; mv tmp $i
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐