Linux-iconv命令之批处理(18)

时间:2023-12-15 09:40:14
iconv命令是用来转换文件的编码方式的,比如它可以将UTF8编码的转换成GB18030的编码,反过来也行

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

//由于没有-o选项,所以将转换后的utf-8格式show_font.c打印到控制台
iconv  show_font.c   -f GBK  -t utf-  -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- {} -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- {} -o utf/{} \; //转换*.h
find myui -name '*.cpp' -type f -exec iconv -f GBK -t UTF- {} -o utf/{} \;