源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

shell实现字符编码转换工具分享

  • 时间:2020-01-04 04:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:shell实现字符编码转换工具分享
[u]复制代码[/u] 代码如下:
#!/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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部