shell转码脚本

shell转码脚本

20191017


!/bin/bash

#iconv -f GB2312 -t utf-8 "filename.sql" -o "newfilename.sql"

#将GB2312文件转换为UTF-8文件
#1个参数:
#       filename:单个文件名称

# 要保证源文件确实是gb2312编码,否则转换之后为乱码!!!
# 不能确定的就一个一个打开看看,一个一个进行转码
# 如何自动识别编码?

filename=$1
nump=$#

function main(){

	#临时文件夹,保存原始文件
	if [ ! -d ./temp_dir ]
	then
		mkdir ./temp_dir
	fi
	
	#单个文件,有一个参数
	let flag=$nump
	if [[ ${flag} = 1 ]]
	then
		mv ${filename} ./temp_dir/${filename}
		iconv -f GB2312 -t utf-8 -c ./temp_dir/${filename} -o ${filename}
		echo "succeed!"
		exit 0
	fi
	
	#多个文件,无参数
	if [[ ${flag} = 0 ]]
	then
		cd $(dirname $0); pwd
		for fileitem in *
		do
			if [ -f ${fileitem} ]
			then
				#echo ${fileitem}
				mv ${fileitem} ./temp_dir/${fileitem}
				iconv -f GB2312 -t utf-8 -c ./temp_dir/${fileitem} -o ${fileitem}
			fi
		done
		echo "succeed!"
	fi
}

main
原文地址:https://www.cnblogs.com/damahuhu/p/11694875.html