濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > shell腳本中使用iconv實(shí)現(xiàn)批量文件轉(zhuǎn)碼的代碼分享

shell腳本中使用iconv實(shí)現(xiàn)批量文件轉(zhuǎn)碼的代碼分享

熱門(mén)標(biāo)簽:陜西電銷(xiāo)卡外呼系統(tǒng)怎么安裝 旅游地圖標(biāo)注大全 excel地址地圖標(biāo)注 百度地圖的地圖標(biāo)注 佛山高德地圖標(biāo)注中心 百度地圖標(biāo)注圖標(biāo)更換 東莞電銷(xiāo)機(jī)器人價(jià)格一覽表 地圖標(biāo)注超出范圍怎么辦 杭州機(jī)器人外呼系統(tǒng)

在開(kāi)發(fā)中,我們經(jīng)常需要對(duì)N多文件編碼進(jìn)行更改,iconv只能對(duì)單文件的進(jìn)行更改,怎么辦呢?我們寫(xiě)一個(gè)shell腳本來(lái)解決這個(gè)問(wèn)題。

例子一:使用shell腳本實(shí)現(xiàn)批量轉(zhuǎn)碼的操作。

#!/bin/sh 
#
convertCodeFilePath=$1 
fromCode=$2 
toCode=$3 
 
for i in {1..1} 
do 
  [ -f $convertCodeFilePath ] 
  if [ $? -eq 0 ] 
  then 
    iconv -f $fromCode -t $toCode -c -o $convertCodeFilePath $convertCodeFilePath 
    if [ $? -ne 0 ] 
    then 
      echo $convertCodeFilePath "=>" convert code failed.      
    else 
      echo $convertCodeFilePath "=>" convert code success. 
    fi 
    break; 
  fi 
   
  [ -d $convertCodeFilePath ] 
  if [ $? -ne 0 ] 
  then 
    break; 
  fi 
     
  dir=`ls $convertCodeFilePath | sort -d` 
 
  for fileName in $dir 
  do 
    fileFullPatch=$convertCodeFilePath/$fileName 
     
    fileType=`echo $fileName |awk -F. '{print $2}'` 
     
    [ -d $fileName ] 
    if [ $? -eq 0 ] 
    then 
      continue 
    fi 
     
    if [ $fileType != 'sh' ]  [ $fileType != 'py' ]  [ $fileType != 'xml' ]  [ $fileType != 'properties' ] \ 
     [ $fileType != 'q' ]  [ $fileType != 'hql' ]  [ $fileType != 'txt' ] 
    then 
      continue 
    fi 
     
    iconv -f $fromCode -t $toCode -c -o $fileFullPatch $fileFullPatch 
    if [ $? -ne 0 ] 
    then 
      echo $fileName "=>" convert code failed. 
      continue 
    else 
      echo $fileName "=>" convert code success. 
    fi     
  done 
done

使用方式:

sh convertCode.sh /home/sam/data gbk utf-8

例子二:簡(jiǎn)潔版

用法示例:

cd ~/workspace/XXXProject
 
~/iconv_shell.sh ./ *java

好了,直接上代碼~~

#!/bin/bash
 
if [ "$#" != "2" ]; then
 
  echo "Usage: `basename $0` dir filter"
 
  exit
 
fi
 
dir=$1
 
filter=$2
 
echo $1
 
for file in `find $dir -name "$2"`; do
 
  echo "$file"
 
  iconv -f gbk -t utf8 -o $file $file
 
done

這里還有些修改的余地,比如源和目標(biāo)編碼應(yīng)該作為參數(shù),我暫時(shí)沒(méi)有這個(gè)需求,懶得寫(xiě)了。

您可能感興趣的文章:
  • shell腳本實(shí)現(xiàn)統(tǒng)計(jì)文件大小、批量創(chuàng)建用戶的示例
  • Shell腳本之文件批量創(chuàng)建與修改的簡(jiǎn)單方法
  • Linux shell利用sed如何批量更改文件名詳解
  • Shell腳本實(shí)現(xiàn)批量替換文件內(nèi)容
  • 詳解linux下批量替換文件內(nèi)容的三種方法(perl,sed,shell)
  • Shell腳本批量修改文件后綴名代碼分享
  • Shell腳本批量重命名文件后綴的3種實(shí)現(xiàn)
  • Shell腳本遍歷目錄并批量修改文件編碼
  • shell批量創(chuàng)建文件并重新命名的實(shí)例代碼

標(biāo)簽:延邊 通遼 青島 朝陽(yáng) 雅安 南充 隨州 西藏

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell腳本中使用iconv實(shí)現(xiàn)批量文件轉(zhuǎn)碼的代碼分享》,本文關(guān)鍵詞  shell,腳本,中,使用,iconv,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《shell腳本中使用iconv實(shí)現(xiàn)批量文件轉(zhuǎn)碼的代碼分享》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于shell腳本中使用iconv實(shí)現(xiàn)批量文件轉(zhuǎn)碼的代碼分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    安国市| 西宁市| 如东县| 仁布县| 三原县| 奎屯市| 惠水县| 开平市| 嵊泗县| 都安| 黄冈市| 运城市| 嘉黎县| 肇源县| 潮安县| 新绛县| 蓬莱市| 崇左市| 额济纳旗| 临江市| 嵊泗县| 新兴县| 明水县| 大名县| 德钦县| 类乌齐县| 渭源县| 宁夏| 永安市| 泉州市| 北宁市| 南皮县| 堆龙德庆县| 元氏县| 吉首市| 辽宁省| 永宁县| 讷河市| 镇江市| 蒙山县| 简阳市|