시스템/Linux2012. 3. 22. 17:02


















오늘은 리눅스에서 인코딩 변경 작업에 대해 포스팅 하고자 합니다.

인코딩 변경 작업시 보통 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
Posted by 소울하트