博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell 脚步批量转换文件编码
阅读量:3637 次
发布时间:2019-05-21

本文共 1494 字,大约阅读时间需要 4 分钟。

#!/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

转载地址:http://mxgun.baihongyu.com/

你可能感兴趣的文章
DHT11使用详解
查看>>
android
查看>>
Android——广播
查看>>
Android——内容提供者
查看>>
Android——网络编程
查看>>
Android——服务
查看>>
HarmonyOS工作原理解析
查看>>
数据库事务的四个特性及含义
查看>>
主题模型探讨
查看>>
stop word理解及超全的停用词表
查看>>
同义词挖掘的一些常用方法 及同义词替换程序
查看>>
用户画像全面精析
查看>>
对话系统分析与展望
查看>>
基于VSM的命名实体识别、歧义消解和指代消解
查看>>
算术运算符和比较运算符
查看>>
复制带随机指针的链表
查看>>
【SpringMVC】十、SSM整合入门
查看>>
学习Java Socket网络编程(三)
查看>>
Java方法参数之参数传递方式
查看>>
mysql安装和配置ODBC驱动,然后tableau链接MySQL数据库
查看>>