清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/bin/bash : << mark 转码工具,支持UTF-8转GBK和GBK转UTF-8 孔令飞@2012-05-07 mark #set -x scode="gbk" dcode="utf-8" function Usage() { cat << EOF Usage: conv [OPTIONS] [DIR] [-u] GBK to UTF-8 [-g] UTF-8 to GBK EOF exit 1 } #将当前目录下所有普通文件进行转码 GBK to UTF-8 function g2u() { local dir=$1 printf "Convering $dir ......" for file in $(ls $dir) do file="$dir/$file" if [ -f $file ];then coding=$(file -b $file | cut -d ' ' -f1) #进行转码 if [ "$coding" = "ISO-8859" ];then local tmpfile=$(mktemp) Fright=$(stat -c %a $file) Fuser=$(stat -c %U $file) Fgro=$(stat -c %G $file) iconv -f $scode -t $dcode $file > $tmpfile || Usage mv $tmpfile $file && chmod $Fright $file chown $Fuser:$Fgrp $file fi fi done printf " done\n" } function u2g() { local dir=$1 printf "Convering $dir ......" for file in $(ls $dir) do file="$dir/$file" if [ -f $file ];then coding=$(file -b $file |cut -d ' ' -f1) #进行转码 if [ "$coding" = "UTF-8" ];then local tmpfile=$(mktemp) Fright=$(stat -c %a $file) Fuser=$(stat -c %U $file) Fgro=$(stat -c %G $file) iconv -f $dcode -t $scode $file > $tmpfile || Usage mv $tmpfile $file && chmod $Fright $file chown $Fuser:$Fgrp $file fi fi done printf " done\n" } [ $# -ne 2 ] && Usage while getopts ug opt do case $opt in u) echo "Convert gbk coding to utf-8 ...." for dir in $(find $2 -type d) do g2u $dir done ;; g) echo "Convert utf-8 coding to gbk ...." for dir in $(find $2 -type d) do u2g $dir done ;; *) Usage exit 1 ;; esac done exit 0