ubuntu 查看文件编码并进行批量编码修改

由于windows下默认文件编码为gbk或者是gb2312,所以将windows下面的文件移到linux下时,常常会出现乱码的现象。

参考链接中的博客,使用enca工具可以进行文件编码的查看。


ubuntu下的安装命令:

sudo apt-get install enca


enca查看文件

enca -L zh_CN file 查看文件编码

enca -L zh_CN -x UTF-8 file 更改文件编码

enca -L zh_CN -x UTF-8 < file1 > file2 不想覆盖原文件


下面是一个脚本,批量更改文件编码

 #!/bin/bash  
    #将文件编码更改为UTF-8  
    #用法  
    #1. 将文件命名encoding.sh   
    #2. chmod +x encoding.sh  
    #3. ./set_encoding.sh   
    #4. 输入目录名称  
    #5. 输入是否递归更改  
    #$1表示是否要递归修改文件编码  
    function change_file_encoing(){  
        for file in $(ls -l|awk '{print $9}')  
        do  
            if [[ -d "$file" && $1 = y ]];then  
               cd $file  
               echo $file  
               change_file_encoing $1  
               cd ..  
            elif [[ -f "$file" ]];then  
               echo $file  
               enca -L zh_CN -x UTF-8 $file  
            fi;  
        done;   
            #ecna -L zh_CN file UTF-8  
    }  
      
    read -p "please enter the dir path:" path #读取目录路径  
    if [ ! -x "$path" ];    #判断目录是否存在且是否具有执行权限  
    then   
        echo "dir path not exists"  
    else  
        read -p "please enter if you want to recursive?y/n:" recur  #是否递归  
    fi  
    if [ $recur = "y" ];  
    then  
        cd $path  
        change_file_encoing "y"     #递归修改文件编码  
    else  
        cd $path  
        change_file_encoing "n"     #非递归修改  
    fi  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值