红联Linux门户
Linux帮助

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

发布时间:2016-04-28 10:09:55来源:linux网站作者:liuchen_csdn

由于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


本文永久更新地址:http://www.linuxdiyf.com/linux/20156.html