shell 批量转换文件编码 您所在的位置:网站首页 批量编码转换工具 shell 批量转换文件编码

shell 批量转换文件编码

2024-01-12 09:26| 来源: 网络整理| 查看: 265

相信大家在平时的跨平台编程中碰到过文件编码问题,比如在Windows代码字符编码方式是GB2312,然而转到Linux却只支持utf-8,虽然对代码部分没啥影响,但是很多中文注释部分,却一片乱码,很让人讨厌。如果一个一个文件处理,转换再另存为,很麻烦,下面就介绍一种使用shell脚本来批量转换文件,其中使用到iconv工具。

转换工具iconv

首先让我们来认识一下iconv工具,iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。支持的编码方式有:Unicode相关编码,如UTF-8、UTF-16等等,各国采用的ANSI编码,其中包括GB2312、BIG5等中文编码方式。[^1]

iconv [选项…] [文件…]

参数说明-f, --from-code=NAME原始文本编码-t, --to-code=NAME输出文本编码-l, --list列出所有已知的编码集-c输出文件中省略掉无效字符-o, --output=FILE输出文件名-s, --silent不输出警告-?, --help帮助-V, --version程序版本

举例: iconv -f gb2312 -t utf-8 gb.txt > utf8.txt 将gb里的编码从GB2312转化成UTF-8 并重定向到utf8.txt

转换脚本

将输入文件夹的所有的GB2312编码的cpp,h,c文件转换为utf-8编码文件

#!/bin/bash filelist=$(find $1 -name "*.cpp" -o -name "*.h" -o -name "*.c") for file in $filelist do echo $file iconv -f gb2312 -t utf-8 $file > tmp if [ $? -eq 0 ] then mv tmp $file fi done 小结

本文介绍一种shell下使用iconv工具批量转换文件编码的方法。

参考文件 [^1] : https://baike.baidu.com/item/iconv/524310?fr=aladdin



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有