EUC-KR 로 작성된 택스트 파일을 utf-8 인코딩으로 변환해야 하는 상황이 있습니다. 뭐 쉽게는 notepad++ 에디터에서 변환하면 되기야 하는데 파일이 많거나 용량이 너무 크면 에디터로 변환하기가 힘들죠.
그래서 쉘이나 스크립트로 변환 할 수 있는 방법을 찾아 봤는데요. 정리하기 귀찮아 이것 저것 복사해 모아 봤습니다. 아래 내용중에는 전문을 복사한 곳도 있습니다. 혹시 원치 않으시면 중요 요점만 남기겠습니다.
윈도우에서 사용하는 변환 프로그램에 대한 글도 있는데요. 파일 용량이 크면 않되네요.

1. 리눅스에서 ICONV를 이용 하여 파일 내용을 utf8으로 변환하는 방법 그리고 파일이름을 UTF8로 변경하는 방법

url: http://www.welog.net/gbbs/bbs/board.php?bo_table=linux&wr_id=186&sca=%C6%C1&page=6

[팁] 리눅스에서 euc-kr 파일을 utf-8 파일로 변환 명령어
글쓴이 : 돗자리
리눅스에서 파일 내용에 있는 한글을 euc-kr에서 utf-8로 변환하는 방법은 다음과 같다.

-c -f euc-kr -t utf-8 test.txt > test-utf8.txt

그리고 파일이름이 euc-kr인 경우에는 convmv를 이용해 파일명을 utf-8로 바꾼다.

#convmv -f euc-kr -t utf-8 –notest 한글.txt

2. 리눅스에서 특정 파일들을 iconv로 변환하는 방법 — 음… 전 작동 않되더군요.

url: http://www.ubuntu.or.kr/viewtopic.php?p=20579

Re: php 파일 변환에 대한 질문입니다. euc-kr 에서 utf-8 로 변환하고자 하는데..
실험은 안 해 봤는데 이렇게 하시면 혹시 되지 않을까요?

Code:
find . -name ‘*.php’ -exec iconv -f euc-kr -t utf-8 {} -o {} \;

그런데 iconv가 버젼에 따라서 앞에처럼 하면 안 되는 경우도 있었던 기억이 있는데요.
안전하게 하고 싶으시면
Code:
find . -name ‘*.php’ -exec iconv -f euc-kr -t utf-8 {} -o {}.utf-8 \;

같이 하셔서 utf-8로 끝나는 파일들이 제대로 돼 있는지 먼저 확인하는 방식을 택하시거나
아니면 간단한 스크립트 하나 만들어서 하시는 것도 되겠네요.

3. 리눅스에서 iconv를 이용한 파일 변환과 특정 파일의 인코딩 정보를 확인하는 방법

url: http://kamjum.tistory.com/archive/20090825

Linux : 파일 인코딩 변환/재변환
(방법 1)
예1) UTF-8로 작성된 test.properties 파일을 euc-kr로 변환

]# iconv -f=UTF-8 -t=euc-kr test.properties

예2) UTF-8로 작성된 test.properties 파일을 euc-kr로 변환하여 다른 파일로 저장한 뒤 인코딩을 다시 UTF-8로 변환 하기

]# iconv -f=UTF-8 -t=euc-kr test.properties > trans.bak
]# iconv -f=euc-kr -t=UTF-8 trans.bak > test.properties

(방법 2)
해당 파일의 현재 인코딩 확인

]# file test.properties
test.properties: UTF-8 Unicode text

vi로 해당 파일 열어서

]# vi test.properties
:e ++enc=현재인코딩

하면 한글 캐짐 방지

4. 윈도우 프로그램을 이용하는 방법

url: http://wayiam.com/blog/wp-content/uploads/1/1079379848.xxx

UTF-8과 EUC-KR로 인코딩 된 파일간의 인코딩 변환 프로그램
UTF-8(유니코드)로 인코딩된 파일을 EUC-KR로… 또는 그 반대로 파일 인코딩을 자동으로 변환하는 툴입니다. …

다운로드 파일이름이 1079379848.xxx로 표시되는데요 다른곳에서 배포되는 “RedUTF8.exe” 파일과 동일한 파일입니다.

5. 리눅스에서 일괄처리하는 쉘스크립트에 관한 글

url: http://stackoverflow.com/questions/4544669/batch-convert-latin-1-files-to-utf-8-using-iconv

You shouldn’t use ls like that and a for loop is not appropriate either. Also, the destination directory should be outside the source directory.
mkdir /path/to/destination
find . -type f -exec iconv -f iso-8859-1 -t utf-8 “{}” -o /path/to/destination/”{}” \;

No need for a loop. The -type f option includes files and excludes directories.

Edit:

The OS X version of iconv doesn’t have the -o option. Try this:
find . -type f -exec bash -c ‘iconv -f iso-8859-1 -t utf-8 “{}” > /path/to/destination/”{}”‘ \;

결국 제가 사용한 방법은 iconv를 이용한 명령어입니다. 쉘스크립트로 모두 변경하는 방법까지는 사용해보지 못했습니다. 그냥 간단히 300MB 정도의 파일 하나만 빠꾸면 되는거라서요 ^^
iconv -c -f euc-kr -t utf-8 data.20120403.sql > utf8.data.20120403.sql