欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2024-01-12 18:39:46
shell 脚本: #!/bin/sh ## ## convert file from gb2312 to utf-8 ## path="$...

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