System/OS

[linux] iconv를 이용하여 euc-kr 문서를 utf-8로 대량으로 변환하기

by hooni posted Jan 09, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
아래 iconv 명령을 이용해서 euc-kr로 작성된 문서를 변환할 수 있다.
euc-kr 형식으로 작성된 [target file]을 utf-8 형식으로 변환하여 [dest file]에 저장하는 명령이다.
$ iconv  -f  euc-kr  -t  utf-8  [target file]  [dest file]

하지만, 파일이 많을 때는 어떻게 해야 할까?
아래와 같은 명령어를 쉘스크립트(Shell Script)로 만들어서 해결할 수 있다.
find 명령어로 찾은 *.php 파일들을 euc-kr에서 utf-8로 변환하는 쉘 스크렙트
#!/bin/bash
find . -name "*.php" | while read fn; do
    cp ${fn} ${fn}.bak
    iconv -f euc-kr -t utf-8 -c ${fn}.bak > ${fn}
    rm ${fn}.bak
done

확장자가 php가 아니라면, 위의 내용 중 *.php를 원하는 확장자로 바꾸면 된다.
(ex. java, text 등)

이 부분을 argument로 바꿔서 만들면 더 편리할 듯..
그건 나중에..
한가지 더.. 아래는 실제로 사용하고 있는 샘플..
FROM=euc-kr
TO=utf-8
ICONV="iconv -c -f $FROM -t $TO "

find ./ -type f -name "*.htm*" | while read fn; do
    cp ${fn} ${fn}.bak
    echo $ICONV ${fn}
    $ICONV < ${fn}.bak > ${fn}
    rm ${fn}.bak
done