linux批量修改文件字符集shell 脚本
2013-03-05 15:10
183 查看
需求:需要将 “/home/zichen/dxzs0305”目录下所有PHP文件字符集由 UTF-8转换为GB2312
shell脚本内容:
iconv 函数参数简介:
iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。
用法: iconv [选项...] [文件...]
有如下选项可用:
输入/输出格式规范:
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码
信息:
-l, --list 列举所有已知的字符集
输出控制:
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息
-?, --help 给出该系统求助列表
--usage 给出简要的用法信息
-V, --version 打印程序版本号
应注意问题 :
1. 转换完成后,请注意与未转换前的PHP文件做对比检查,防止因为转换后的文件破损(使用iconv转换文件,如果文件内部行与行之间存在多个空行,会终止对多个空行后的代码进行转换,忽略不计)而引发其他问题,导致项目无法正常使用。
2.如果系统中使用PHP自带的 json_encode 函数,请注意传递参数或传递查询结果的字符集,好像php自带 的 json_encode只支持UTF-8格式字符集,请注意检查并使用 iconv()函数进行转换,不然会出现中文显示或插入数据库为空现象!
shell脚本内容:
#!/bin/bash -x SUBFIX="php" #需要转换的目标文件后缀 cd /home/zichen/dxzs0305 #目标文件根目录 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 UTF-8 -t GB2312 -o $f $f #使用 iconv函数进行转换 # enca -L UTF-8 -x zh_cn $f #如果使用enca 进行转换,需要安装 enca 命令 sudo apt-get install enca else echo "$f encoding is :$type" fi done done
iconv 函数参数简介:
iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。
用法: iconv [选项...] [文件...]
有如下选项可用:
输入/输出格式规范:
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码
信息:
-l, --list 列举所有已知的字符集
输出控制:
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息
-?, --help 给出该系统求助列表
--usage 给出简要的用法信息
-V, --version 打印程序版本号
应注意问题 :
1. 转换完成后,请注意与未转换前的PHP文件做对比检查,防止因为转换后的文件破损(使用iconv转换文件,如果文件内部行与行之间存在多个空行,会终止对多个空行后的代码进行转换,忽略不计)而引发其他问题,导致项目无法正常使用。
2.如果系统中使用PHP自带的 json_encode 函数,请注意传递参数或传递查询结果的字符集,好像php自带 的 json_encode只支持UTF-8格式字符集,请注意检查并使用 iconv()函数进行转换,不然会出现中文显示或插入数据库为空现象!
相关文章推荐
- Linux下批量修改文件后缀名及shell脚本中匹配文件名称变量写法
- shell 脚本实现的遍历目录修改子目录及其文件权限
- lunix下shell脚本批量获取文件,批量修改文件内容
- 批量修改文件名称或者文件内容的shell脚本
- Shell脚本实现检测文件是否被修改过代码分享
- linux通过shell脚本修改文件内容
- [Unix] shell脚本实现的修改文件中的字符串
- Linux的简单shell脚本中修改文件操作
- shell脚本采用sed批量修改文件
- shell脚本实现的修改文件中的字符串(转)
- Linux的简单shell脚本中修改文件操作
- shell脚本:修改包含特定内容的多个文件
- Shell脚本遍历目录并批量修改文件编码
- Shell脚本实现检测文件是否被修改过代码分享
- 一个使用shell脚本实现的修改文件中的字符串
- shell脚本判断linux文件修改时间后执行操作
- shell数组及random相关应用和批量修改建立用户,检查文件篡改脚本
- shell脚本修改配置文件指定行的值
- Shell脚本实现根据文件的修改时间来分类文件
- 通过shell脚本修改xml文件中的某行记录