shell 脚步批量转换文件编码

#!/bin/bash 
#author pengzhi
#email pengzhi@baidu.com
#brief 批量转换文件编码
source ./confs/conf.sh
function main()
{
    file="${1}"
    if [ -f "${file}" ];then
         iconv_file "${file}"
    elif [ -d "${file}" ];then
         iconv_dir "${file}"
    else
        echo "....";


    fi
}
function iconv_dir()
{
    local dir="${1}";
    echo -e "${ESC_START}${COLOR_INFO} Start iconv dir:${dir} ${ESC_END}";


    local filelist=`ls "${dir}"`
    local item;
    for item in ${filelist}
    do
        if [[ "." == "${item}" || ".." == "${item}" ]];then
            continue;
        fi
        local path="${dir}/${item}";
        if [ -d "${path}" ];then
            iconv_dir "${path}"


        elif [ -f "${path}" ];then
            iconv_file "${path}"
        else
            echo -e "${ESC_START}${COLOR_WARNING} Unknow type:${path} ${ESC_END}";
        fi
    done
    echo -e "${ESC_START}${COLOR_INFO} End iconv dir:${dir} ${ESC_END}";
}
function iconv_file()
{
    file="${1}"
    echo -e "${ESC_START}${COLOR_INFO} Start iconv file:${file} ${ESC_END}"; 


    t=`date +"%Y%m%d%H%H%s"`
    dir=`dirname "${file}"`


    tmp="${dir}/.tmp/${t}"
    mkdir -p "${dir}/.tmp"
    touch "${tmp}"
    echo -e "${ESC_START}${COLOR_NOTICE} touch ${tmp} ${ESC_END}";
      
    echo "iconv -c -f UTF-8 -t GB2312 ${file} > ${tmp}"
    #(iconv -c -f "UTF-8" -t "GB2312" "${file}" > "${tmp}";exit $?)&
    #wait


    iconv -c -f "UTF-8" -t "GB2312" "${file}" > "${tmp}"
    if [ "$?" -eq 0 ];then
       echo "cp -rf ${tmp} ${file}";
       cp -rf "${tmp}" "${file}";
    else
        echo -e "${ESC_START}${COLOR_WARNING} iconv ${file} fail! ${ESC_END}";
    fi
    rm "${tmp}" -rf
    rm -rf "${dir}/.tmp"
    echo -e "${ESC_START}${COLOR_INFO} End iconv file:${file} ${ESC_END}"; 
}
main $1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值