利用iconv进行文件编码批量原地转换

时间:2022-03-01 00:10:32

将当前目录及其所有子目录中的以 java 为后缀的文件,从 GB18030 转换为 UTF-8:

find .  -name "*.java" -exec sh -c "iconv -f GB18030 -t UTF8 {} -o {}" \;

注意备份文件,上面的命令有时候执行出错,可能将你的文件毁灭。。。。。

第一个.表示当前目录,换成你的目录。-o为输出(经试验发现将-o换成>后不会得到想要的结果,直接将问文件清空了)

{}表示exec传递过来的参数,即文件名,这样就会覆盖原来的文件,也就是不另行创建新文件

写成{}.txt的形式,就会创建一个同名但带有.txt后缀的文件

除了用exec外还可以用xargs传递(可以传多个参数)