主页 > 知识库 > shell脚本中使用iconv实现批量文件转码的代码分享

shell脚本中使用iconv实现批量文件转码的代码分享

热门标签:陕西电销卡外呼系统怎么安装 旅游地图标注大全 excel地址地图标注 百度地图的地图标注 佛山高德地图标注中心 百度地图标注图标更换 东莞电销机器人价格一览表 地图标注超出范围怎么办 杭州机器人外呼系统

在开发中,我们经常需要对N多文件编码进行更改,iconv只能对单文件的进行更改,怎么办呢?我们写一个shell脚本来解决这个问题。

例子一:使用shell脚本实现批量转码的操作。

#!/bin/sh 
#
convertCodeFilePath=$1 
fromCode=$2 
toCode=$3 
 
for i in {1..1} 
do 
  [ -f $convertCodeFilePath ] 
  if [ $? -eq 0 ] 
  then 
    iconv -f $fromCode -t $toCode -c -o $convertCodeFilePath $convertCodeFilePath 
    if [ $? -ne 0 ] 
    then 
      echo $convertCodeFilePath "=>" convert code failed.      
    else 
      echo $convertCodeFilePath "=>" convert code success. 
    fi 
    break; 
  fi 
   
  [ -d $convertCodeFilePath ] 
  if [ $? -ne 0 ] 
  then 
    break; 
  fi 
     
  dir=`ls $convertCodeFilePath | sort -d` 
 
  for fileName in $dir 
  do 
    fileFullPatch=$convertCodeFilePath/$fileName 
     
    fileType=`echo $fileName |awk -F. '{print $2}'` 
     
    [ -d $fileName ] 
    if [ $? -eq 0 ] 
    then 
      continue 
    fi 
     
    if [ $fileType != 'sh' ]  [ $fileType != 'py' ]  [ $fileType != 'xml' ]  [ $fileType != 'properties' ] \ 
     [ $fileType != 'q' ]  [ $fileType != 'hql' ]  [ $fileType != 'txt' ] 
    then 
      continue 
    fi 
     
    iconv -f $fromCode -t $toCode -c -o $fileFullPatch $fileFullPatch 
    if [ $? -ne 0 ] 
    then 
      echo $fileName "=>" convert code failed. 
      continue 
    else 
      echo $fileName "=>" convert code success. 
    fi     
  done 
done

使用方式:

sh convertCode.sh /home/sam/data gbk utf-8

例子二:简洁版

用法示例:

cd ~/workspace/XXXProject
 
~/iconv_shell.sh ./ *java

好了,直接上代码~~

#!/bin/bash
 
if [ "$#" != "2" ]; then
 
  echo "Usage: `basename $0` dir filter"
 
  exit
 
fi
 
dir=$1
 
filter=$2
 
echo $1
 
for file in `find $dir -name "$2"`; do
 
  echo "$file"
 
  iconv -f gbk -t utf8 -o $file $file
 
done

这里还有些修改的余地,比如源和目标编码应该作为参数,我暂时没有这个需求,懒得写了。

您可能感兴趣的文章:
  • shell脚本实现统计文件大小、批量创建用户的示例
  • Shell脚本之文件批量创建与修改的简单方法
  • Linux shell利用sed如何批量更改文件名详解
  • Shell脚本实现批量替换文件内容
  • 详解linux下批量替换文件内容的三种方法(perl,sed,shell)
  • Shell脚本批量修改文件后缀名代码分享
  • Shell脚本批量重命名文件后缀的3种实现
  • Shell脚本遍历目录并批量修改文件编码
  • shell批量创建文件并重新命名的实例代码

标签:延边 通辽 青岛 朝阳 雅安 南充 随州 西藏

巨人网络通讯声明:本文标题《shell脚本中使用iconv实现批量文件转码的代码分享》,本文关键词  shell,脚本,中,使用,iconv,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《shell脚本中使用iconv实现批量文件转码的代码分享》相关的同类信息!
  • 本页收集关于shell脚本中使用iconv实现批量文件转码的代码分享的相关信息资讯供网民参考!
  • 推荐文章