shell脚本怎么修改编码

 我来答
良玉小帝
2018-01-22 · 个人日常精心汇总合集
良玉小帝
采纳数:5925 获赞数:9450

向TA提问 私信TA
展开全部
首先,我得知道这个文件具体采用的是什么样的编码,如果是ISO-8859我将会把它转成UTF-8,其他的ASCII这些都先不做处理,这里可以使用file filename或者是enca iconv

enca需要获取下:sudo apt-get install enca

iconv的一般用法是:(可以man iconv)

-f from code 源文件编码

-t to code 目标文件编码

-o output file 保存为文件

例子:

iconv -f GB2312 -t UTF-8 -o google.txt google.txt

将google.txt的编码由GB2312更新为UTF-8

enca也同上用法,一般在脚本中对于未曾提供的语言,enca不会报错,这样可以保证脚本顺利执行

enca -L zh_CN file 检查文件编码

enca -L zh_CN -x UTF-8 file 将文件编码修改为UTF-8并覆盖文件

具体的用法都可以去查看man手册或者google之

好了,不多说,查看脚本吧!

#!/bin/bash -x

#由于之前使用windows系统来存放过一些文本文件,利用dropbox同步过来的时候,文件发生乱码,故写脚本来批量处理

#这里是对所有的需求文件进行处理,后续可根据修改目录进行处理

SUBFIX="txt html htm conf"

#cd /home/gavin/tmp

if [ -z $1 ];then
cd $PWD
else
if [ -d $1 ];then
cd $1
else
echo " $1 is not exist;"
exit 1
fi
fi

for i in $SUBFIX;
do
files=`find . -name "*.$i"`
for f in $files;
do
type=`file $f|awk -F':' '{print $2}' |awk '{print $1}'` #获取文件类型
if [ $type = "ISO-8859" ];then
#iconv -f GB2312 -t UTF-8 -o $f $f
enca -L zh_cn -x UTF-8 $f
else
echo "$f encoding is :$type"
fi

done
done
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式