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

 更新时间:2014年08月04日 11:33:07   投稿:junjie  
这篇文章主要介绍了shell脚本中使用iconv实现批量文件转码的代码分享,本文提供了2个实现代码和各自使用方法,需要的朋友可以参考下

在开发中,我们经常需要对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

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

相关文章

  • Linux中nmcli命令使用详解

    Linux中nmcli命令使用详解

    nmcli是Linux系统中的一个命令行工具,用于管理网络连接,它可以帮助用户配置和管理网络连接、网络设备以及网络连接的属性,本文给大家详细介绍了Linux nmcli命令使用方法,需要的朋友可以参考下
    2024-03-03
  • Linux中自定义shell脚本启动jar包的方法

    Linux中自定义shell脚本启动jar包的方法

    这篇文章主要介绍了Linux中自定义shell脚本启动jar包的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Linux du命令查看文件夹大小并按降序排列

    Linux du命令查看文件夹大小并按降序排列

    这篇文章主要介绍了Linux du命令查看文件夹大小并按降序排列,需要的朋友可以参考下
    2015-11-11
  • shell脚本两个文件关键行合并方式

    shell脚本两个文件关键行合并方式

    这篇文章主要介绍了shell脚本两个文件关键行合并方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Shell脚本实现监视指定进程的运行状态

    Shell脚本实现监视指定进程的运行状态

    这篇文章主要介绍了Shell脚本实现监视指定进程的运行状态,本文直接给出脚本代码,需要的朋友可以参考下
    2015-07-07
  • linux命令之crontab命令用法详解

    linux命令之crontab命令用法详解

    crontab命令一般被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,这篇文章主要为大家介绍了它的使用,需要的可以参考下
    2023-08-08
  • 检查linux网络状态的两个脚本

    检查linux网络状态的两个脚本

    检查linux网络状态的两个脚本,包括通过定时收发email检测网络连通性、定时检测网络状态通过email发送,有需要的朋友可以参考下
    2013-02-02
  • linux shell之pushd、popd和dirs的使用讲解

    linux shell之pushd、popd和dirs的使用讲解

    今天小编就为大家分享一篇关于linux shell之pushd、popd和dirs的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 完美解决linux下dns配置重启失效的问题

    完美解决linux下dns配置重启失效的问题

    下面小编就为大家带来一篇完美解决linux下dns配置重启失效的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • shell脚本编程之循环语句

    shell脚本编程之循环语句

    这篇文章主要介绍了shell脚本编程之循环语句的相关资料,需要的朋友可以参考下
    2016-01-01

最新评论