当前位置:  操作系统/服务器>linux

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

    来源: 互联网  发布时间:2014-10-17

    本文导语:  在开发中,我们经常需要对N多文件编码进行更改,iconv只能对单文件的进行更改,怎么办呢?我们写一个shell脚本来解决这个问题。 例子一:使用shell脚本实现批量转码的操作。 #!/bin/sh # convertCodeFilePath=$1 fromCode=$2 toCode=...

在开发中,我们经常需要对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脚本的函数?
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • shell 脚本中命令别名在脚本外无法使用
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • 想用shell脚本定时执行另一个脚本
  • 一个shell执行另一个带参数shell脚本????????????
  • 如何给shell脚本加密,脚本中有密码。最好是比较直接的,不要说让用 shc
  • Shell脚本调用Sql脚本并向其中传递变量
  • 请问,Shell中如何执行另外一个Shell脚本?
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
  • cd、zip等命令在shell提示符下能执行,在shell脚本中为什么不能执行呢?
  • shell脚本问题 关于父脚本和子脚本的问题
  • shell脚本错误输出
  • 请教shell脚本启动程序
  • 关于shell脚本的。
  • 关于arm linux下的别名配置脚本如何在进入用户时让shell执行的问题,如bashrc,profile,.bash_profile等脚本,寻求高手解答
  • 高分请教关于Shell脚本执行中断问题?
  • linux shell脚本
  • 怎么写shell代码 写好shell怎么运行?
  • 如何用c shell实现让一个a.exe在后台运行,请给出shell代码
  • 请问一些shell命令的源代码,比如cp 的源代码存放在什么目录中?
  • 在底层驱动代码C中能不能嵌入shell脚本?
  • 怎么读shell的源代码呢?哪里可以找到?
  • shell小程序代码请教!急!!!!!!
  • 如何用shell检查程序的返回代码
  • 20090102用shell代码转换为2009-01-02?帮忙了,谢谢
  • 求unix或者linux的shell源代码
  • 如何使用shell文件实现linux环境下的挂载功能,具体代码!!
  • 求改一句SHELL代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 编一个模拟shell实现的程序,怎么实现输入输出重定向?谢谢
  • 用shell调用api接口能实现吗?100分就是你的了
  • 请问shell能实现注册的功能吗?
  • 用shell命令来实现改变文件的icon
  • Linux shell 可以实现连接数据库吗?
  • bash shell 如何实现删除文件中的各行字符呢?
  • 如何用shell实现向文件删除或添加一行信息
  • 请教一下,如何用shell 编程实现删除超过一定时间以前的文件?
  • 如何用shell程序实现一个监控程序(内详)
  • 用shell实现scp,如何将密码传给相应的指令?
  • 如何编程实现(不用shell命令)修改文件的时间
  • 急急急!!!!!!用B shell如何实现截取变量的子串?
  • 用SHELL脚本实现?
  • shell 读取xml的实现
  • shell脚本如何实现下面的功能
  • UNIX SHELL实现su用户切换功能
  • 怎么在每行数据后加 一个 词 (shell 实现)
  • shell中for循环如何实现增量为2
  • 一分钟产生60个文件,shell怎么实现!!!
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3