下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
#!/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
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。