批量ICONV转码的shell脚本

发布时间:2020-02-29编辑:脚本学堂
shell批量转码,为解决批量转码的操作,使用了如下的脚本来进行,使用iconv批量转码的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 |linuxjishu/13830.html target=_blank class=infotextkey>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