Linux-iconv命令、并批处理将所有GBK文件转换为UTF8(18)

iconv命令是用来转换文件的编码方式的,比如它可以将UTF8编码的转换成GB18030的编码,反过来也行

常用选项
  • -f font1 :(from)将font1型的字符编码进行转换
  • -t font2 :(to)转换成font2型的字符编码
  • -l :列出已知的编码字符集合
  • -o :file :指定输出文件

实例
iconv  show_font.c   -f GBK  -t utf-8  

//由于没有-o选项,所以将转换后的utf-8格式show_font.c打印到控制台

 

iconv  show_font.c   -f GBK  -t utf-8  -o  show_font2.c 

//将show_font.c转换为utf-8编码,并输出到show_font2.c文件里

 


在Windous下,可以直接通过记事本另存为编码,即可实现编码互转

对于多个文件的文件夹,如何批处理
示例如下:
$ find default -type d -exec mkdir -p utf/{} \;
$ find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;

命令1:通过find -type d(查找目录)命令,将当前default文件夹里的目录递归的找出来,然后通过mkdir命令,将找出来的目录递归地复制到utf/default中

命令2:通过find -type f(查找文件)命令,将当前default文件夹里的文件递归的找出来,然后通过iconv命令,批量的转换为utf-8文件,并复制到utf/default中

 

参考:https://blog.csdn.net/u012724167/article/details/77248919

 

如果只想批处理文件夹里的某些特殊文件

比如,我们只想处理myui文件夹里的*.cpp和*.h

示例如下:

cp myui/ utf/myui -rf    //将myui 复制到utf/myui

find utf/myui -name '*.h' -type f -exec rm -rf {} \;   //删除*.h
find utf/myui -name '*.cpp' -type f -exec rm -rf {} \;

find myui -name '*.h' -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;     //转换*.h
find myui -name '*.cpp' -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;        

 

 





posted @ 2018-03-03 19:11  诺谦  阅读(2609)  评论(0编辑  收藏  举报