티스토리 뷰

Linux&Unix/Shell

[Shell] 파일 인코딩 변경

Reo Dongmin Lee 2018. 10. 29. 17:31

파일의 한글 인코딩을 변경할 일이 있을때 (예를들어 UTF-8 -> eucKR) 일일히 파일을 하나씩 수정하려면 번거롭다.

다음과 같이 shell로 만들어서 폴더 전체 파일들을 변경하면 간편하게 변경 가능하다.

if [ $# != 3 ]; then
echo "========================================================================="
echo "Check input parameters."
echo "usage: convert_charset.sh {from charset} {to charset} {to directory}"
echo "ex) convert_charset.sh UTF-8 eucKR /myhome/test"
echo "If you want to check available charset of your system, try: locale -a"
echo "========================================================================="
exit 0
fi

from_charset=$1
to_charset=$2
charset_dir=$3

cd $charset_dir
if [ $? != 0 ]; then
echo "Error: Ensure if the directory path is correct. dir = [${charset_dir}]"
exit 1
fi

list=`ls`
for filename in $list
do
echo $filename
iconv -c -f $from_charset -t $to_charset $filename > /dev/null 2>&1
if [ $? != 0 ]; then
echo "[$filename] Converting failed. Check from/to charset."
else
iconv -c -f $from_charset -t $to_charset $filename > $filename.bak
mv $filename.bak $filename
echo "[$filename] Converting successed. [$from_charset] ==> [$to_charset]"
fi
done

exit 0



댓글