Ubuntu如何查看和批量修改文件编码
发布网友
发布时间:2022-05-15 22:11
我来回答
共1个回答
热心网友
时间:2023-09-18 03:05
我们都知道在Windows下文件编码默认为gbk或者是gb2312,但很多用户有时需要把Windows下的文件移到Linux系统中,所以转移后就经常出现乱码的情况,这该怎么办呢?接下来小编就给大家介绍下Ubuntu查看和批量修改文件编码的方法。
使用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