当前位置: 移动技术网 > 网络运营>服务器>Linux > Shell脚本把文件从GBK转为UTF-8编码

Shell脚本把文件从GBK转为UTF-8编码

2017年12月12日  | 移动技术网网络运营  | 我要评论

shell 脚本:

#!/bin/sh 

## 
## convert file from gb2312 to utf-8
## 

path="$1"
unset opt
if [ "$2" = "force" ]; then
	opt="-c -s"
fi

if [ -z "$path" ]; then
	echo "nusage: $0 <file or dir>n"
elif [ ! -e "$path" ] ; then
	echo "nerror: destination: $path does not exist.n"
fi

if [ -f "$path" ] ; then
	echo "converting $path (gbk --> utf-8) ... "
	if file "$path"|grep -q utf-8 >/dev/null ; then
		echo "already converted"
	else
		iconv -f gbk $opt -t utf-8 "$path" > /tmp/$$.tmp
		if [ $? -eq 0 ] ; then
			echo "success"
			mv -f /tmp/$$.tmp "$path"
		else
			echo "failed"
		fi
	fi
elif [ -d "$path" ] ; then
	path=`echo "$path/"|sed 's//////'`
	find "$path" -path "$path.*" -prune -o -type f -print|while read i
	do
		dir=`dirname $i`
		file=`basename $i`
		echo "converting $dir/$file (gbk --> utf-8) ..."
		iconv -f gbk -t utf-8 $opt "$i" > /tmp/$$.tmp 2>/dev/null
		if [ $? -eq 0 ] ; then
			echo "success"
			mv -f /tmp/$$.tmp "$i"
		else
			echo "failed"
		fi
	done
fi

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网