linux批量修改檔案字元集shell指令碼 需求:需要將 “/home/zichen/dxzs0305”目錄下所有PHP檔案字元集由 UTF-8
轉換為GB2312 www.2cto.com shell指令碼內容:[html] #!/bin/bash -x SUBFIX="php" #需要轉換的目標檔案尾碼 www.2cto.com 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 [選項...] [檔案...]有如下選項可用: www.2cto.com 輸入/輸出格式規範:-f, --from-code=名稱 原始文本編碼-t, --to-code=名稱 輸出編碼資訊:-l, --list 列舉所有已知的字元集輸出控制:-c 從輸出中忽略無效的字元-o, --output=FILE 輸出檔案-s, --silent 關閉警告--verbose 列印進度資訊-?, --help 給出該系統求助列表--usage 給出簡要的用法資訊-V, --version 列印程式版本號碼