오늘은 리눅스에서 인코딩 변경 작업에 대해 포스팅 하고자 합니다.
인코딩 변경 작업시 보통 iconv 명령어를 이용하여 작업을 많이 합니다.
하지만 다수의 파일을 인코딩 변경을 하려면 쉘 스크립트를 작성해야 합니다.
자 인코딩 변경 작업 예제 입니다. 한번에 해당 폴더에 있는 인코딩을 전부 변경 할 수 있습니다.
예) 현재 폴더에서 확장자가 php 인 파일의 인코딩을 utf-8 에서 euc-kr 로 수정
for PHP in `find ./ -name "*.php"` ; do iconv -c -f utf-8 -t euc-kr $PHP > $PHP.bak && mv $PHP.bak $PHP ; done
위 내용에 대해 간단히 설명을 드리자면!
for 명령어로 find ./ -name "*.php" 의 값을 PHP 라는 변수로 선언 한뒤 iconv 명령어로 인코딩을 변경한 파일명.bak 파일로 생성합니다.
그다음 mv 명령어로 파일명.bak 의 이름의 파일들을 기존 파일명으로 덮어씌어버리는 겁니다.
주의할점은 기본 리눅스 쉘에서는 alias mv='mv -i' 가 지정되어있습니다. 같은 이름의 파일을 덮어씌우기전에 물어보는거지요. 이 항목이 기록되어 있는 ~/.bashrc 파일 열어 alias mv='mv -f' 로 수정 후 source ~/.bashrc 후 작업하면 됩니다.
약간의 오류가 생겨 mv 가 몇몇 파일들에 적용이 안될수도 있습니다. 그럴땐 확인 후 다시 수작업으로 변경해줘야합니다.
이 경우 스크립트는 작성 후 다시 게시 하겟습니다. ㅜㅜ
iconv 인코딩용으로는 상당히 쓸만합니다. recode 라는 명령어도 있지만 iconv 도 스크립트를 적절히 써주면 만족스럽습니다.
iconv 의 자세한 설명은 http://mindpower.kr/10 여기를 클릭
이상입니다.
'시스템 > Linux' 카테고리의 다른 글
리눅스 명령어 - ac (0) | 2012.07.11 |
---|---|
리눅스 명령어 - ab (0) | 2012.07.05 |
리눅스 명령어 - a2p (0) | 2012.07.04 |
find 명령어 (1) | 2012.05.22 |
make: *** [ext/mysqli/mysqli_api.lo] Error 1 (0) | 2012.03.15 |
vsftpd 설치와 옵션(Cent OS) (0) | 2012.01.16 |
Apache conf 파일 분석 ( 2.2.x 이하 apache ) (0) | 2012.01.16 |
Linux 환경에서 IP alias 기능 사용 (0) | 2011.12.12 |