清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/bin/sh
# to Oudge the input data
echo "you're going to Convert the file's encoding..."
echo "before doing this,remember to backup..."
echo "usage: ConvUTF_GB.sh utf-8/gb18030 or ConvUTF_GB.sh utf-8/gb18030 filename"
if (($# > 2)) || (($# < 1))
then
exit -1
fi
encoding=`echo $1 | tr '[a-z]' '[A-Z]'`
ConvFile()
{
if [ $# != 1 ];then
echo "usage:ConvFile filename"
return -1
fi
encodingType="UTF-8 ISO-8859"
for type in ${encodingType}
do
# 扫描路径检查文件编码格式
#echo ${type}
encoding_of_file=`file $1 | grep $type`
if [ "$encoding_of_file" != "" ];then
encoding_of_file=$type
fi
# 指定的转编格式和文件编码格式一致 do nothing
if [ "$encoding_of_file" = "$encoding" ];then
echo "指定的格式[$encoding]和文件编码格式[$encoding_of_file]一致 do nothing"
# 文件为GBK系列的编码格式时
elif [ "$encoding_of_file" = "ISO-8859" ];then
encoding_of_file=GB2312
#且 指定编码方式为GBK时 do nothing
encoding_GB=`echo $encoding | grep GB`
if [ "$encoding_GB" != "" ];then
echo "指定的转码格式[$encoding]和文件编码格式[$encoding_of_file]一致 do nothing"
else
iconv -f $encoding_of_file -t ${encoding} $1 -o ${1}_
mv ${1}_ $1
fi
# 编码类型未找到
elif [ "$encoding_of_file" = "" ];then
:
# 文件类型和指定的编码格式不一致
else
iconv -f ${encoding_of_file} -t ${encoding} $1 -o ${1}_
mv ${1}_ $1
fi
done
return 0
}
if [ -f "$2" ];then
ConvFile $2
if [ $? != 0 ];then
echo "ConvFile failed"
exit -1
fi
else
# put the files into a filelist
#for FILENAME in $(ls .)
listType=".c .h"
for type in ${listType}
do
# 扫描路径
echo ${type}
find . -name "*${type}" | while read file
do
echo $file
ConvFile $file
if [ $? != 0 ];then
echo "ConvFile failed"
exit -1
fi
done
done
fi