shell腳本中使用iconv實現(xiàn)批量文件轉(zhuǎn)碼的代碼分享
更新時間:2014年08月04日 11:33:07 投稿:junjie
這篇文章主要介紹了shell腳本中使用iconv實現(xiàn)批量文件轉(zhuǎn)碼的代碼分享,本文提供了2個實現(xiàn)代碼和各自使用方法,需要的朋友可以參考下
在開發(fā)中,我們經(jīng)常需要對N多文件編碼進(jìn)行更改,iconv只能對單文件的進(jìn)行更改,怎么辦呢?我們寫一個shell腳本來解決這個問題。
例子一:使用shell腳本實現(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
例子二:簡潔版
用法示例:
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ù),我暫時沒有這個需求,懶得寫了。
相關(guān)文章
Shell腳本實現(xiàn)監(jiān)視指定進(jìn)程的運(yùn)行狀態(tài)
這篇文章主要介紹了Shell腳本實現(xiàn)監(jiān)視指定進(jìn)程的運(yùn)行狀態(tài),本文直接給出腳本代碼,需要的朋友可以參考下2015-07-07
檢查linux網(wǎng)絡(luò)狀態(tài)的兩個腳本
檢查linux網(wǎng)絡(luò)狀態(tài)的兩個腳本,包括通過定時收發(fā)email檢測網(wǎng)絡(luò)連通性、定時檢測網(wǎng)絡(luò)狀態(tài)通過email發(fā)送,有需要的朋友可以參考下2013-02-02
linux shell之pushd、popd和dirs的使用講解
今天小編就為大家分享一篇關(guān)于linux shell之pushd、popd和dirs的使用講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04

