LINUX下批量转换一个目录下所有文件编码为UTF-8编码
已经对文件做了判断,如果已是UTF-8的文件跳过
代码存成 toutf8.sh 执行 ./toutf8.sh 目录名
#!/bin/bash
function encode()
{
local temp=`iconv -f gb18030 $1 1>/dev/null 2>/dev/null && echo 'true'`;
if [ "$temp" = 'true' ]; then
iconv -f gb18030 -t utf-8 "$1" > test
cat test > "$1";
fi;
}
function walk()
{
for file in `ls $1`
do
local path=$1"/"$file
if [ -d $path ]
then
echo "DIR $path"
walk $path
else
echo "FILE $path"
encode $path
fi
done
}
if [ $# -ne 1 ]
then
echo "USAGE: $0 TOP_DIR"
else
walk $1
fi
无评论