手机
当前位置:查字典教程网 >脚本专栏 >linuxshell >shell脚本中使用iconv实现批量文件转码的代码分享
shell脚本中使用iconv实现批量文件转码的代码分享
摘要:在开发中,我们经常需要对N多文件编码进行更改,iconv只能对单文件的进行更改,怎么办呢?我们写一个shell脚本来解决这个问题。例子一:使...

在开发中,我们经常需要对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脚本中使用iconv实现批量文件转码的代码分享】相关文章:

使用Shell 脚本实现每隔100行插入一条记录且记录第一列包含行号其他列不变

25个好用的Shell脚本常用命令分享

Shell脚本把文件从GBK转为UTF-8编码

shell脚本中28个特殊字符的作用简明总结

Shell脚本定时备份清除运行系统日志的代码

shell 进度条实现代码

shell脚本从SVN推送到多台服务器的代码

实现批量linux格式化硬盘和挂载硬盘脚本分享

shell脚本中执行时提示“没有那个文件或目录”的解决办法

shell脚本中echo显示内容带颜色的实现方法

精品推荐
分类导航