IT/OS|Network|Script
[Script] bash iconv로 디렉토리 내 파일들 cp949 to utf8변환
박모
2023. 9. 14. 16:14
728x90
1) 파일 확장자들은 MY_LIST에서 보이는 것처럼 *.h *.c
2) 변환 fail은 stderr로 올라오는 것을 체크해서 처리
#!/bin/bash
TMP_FILE_OUT=/dev/shm/mytmp.out
TMP_FILE_ERR=/dev/shm/mytmp.err
#iconv -f cp949 -t utf-8
get_file_size()
{
FSIZE=0
if [ -f $1 ] ; then
FSIZE=`wc -c $1|awk ' { print $1 } '`
fi
return $FSIZE
}
MY_LIST=`ls *.h *.c`
for MY_FILE in $MY_LIST
do
get_file_size ${MY_FILE}
SIZE_MY_FILE=$?
if [ ${SIZE_MY_FILE} -gt 0 ]; then
iconv -f cp949 -t utf-8 ${MY_FILE} > ${TMP_FILE_OUT} 2>${TMP_FILE_ERR}
get_file_size ${TMP_FILE_OUT}
SIZE_OUT_FILE=$?
get_file_size ${TMP_FILE_ERR}
SIZE_ERR_FILE=$?
if [ ${SIZE_OUT_FILE} -gt 0 ] ; then
if [ ${SIZE_ERR_FILE} -eq 0 ] ; then
echo "Succ: ${MY_FILE}"
mv ${TMP_FILE_OUT} ${MY_FILE}
else
echo "Error: ${MY_FILE}"
fi
fi
fi
done
728x90