#!/bin/sh
# Maintainer : gogisnim (gogisnim@gmail.com)
# Last Modify : 2006.02.24
# 특정 디렉토리의 euc-kr 포맷을 utf-8 포맷으로 일괄 변환한다
# 사용법: uni_change.sh 디렉토리명|파일명 [포맷형태]
# 주의사항 : 스크립트 구동전 반드시 백업을 하십시오
if [ -z "$1" ]; then
echo "usage: uni_change.sh dir|file [encoding]"
exit 1
fi
if [ -z "$2" ]; then
FENCODE="euc-kr"
TENCODE="utf-8"
fi
if [ "X$2" = "Xutf-8" ]; then
FENCODE="euc-kr"
TENCODE="utf-8"
elif [ "X$2" = "Xeuc-kr" ]; then
FENCODE="utf-8"
TENCODE="euc-kr"
fi
if [ -d "$1" -a -w "$1" ]; then
FLAG="D"
elif [ -f "$1" -a -w "$1" ]; then
FLAG="F"
else
FLAG="X"
fi
if [ "X$FLAG" = "XF" ]; then
FILE=$1
iconv -f $FENCODE -t $TENCODE $FILE > ${FILE}_new 2> /dev/null
RETVAL=$?
if [ "X$RETVAL" = "X0" ]; then
mv -f ${FILE}_new $FILE
echo "$FILE encoding changed ... success"
else
rm -f ${FILE}_new
echo "$FILE encoding changed ... fixed"
fi
elif [ "X$FLAG" = "XD" ]; then
DIR=$1
LIST=`find "$DIR" -type f`
for file in $LIST; do
iconv -f $FENCODE -t $TENCODE $file > ${file}_new 2> /dev/null
RETVAL=$?
if [ "X$RETVAL" = "X0" ]; then
mv -f ${file}_new $file
echo "$file encoding changed ... success"
else
rm -f ${file}_new
echo "$file encoding changed ... fixed"
fi
done
else
echo "$file encoding changed ... failed"
fi
exit 0

댓글을 달아 주세요