도스에서 작업한 txt파일을 리눅스에서 불러와 작업하면 상당히 애로사항이 많게 됩니다. 

파일을 편집하다 보면 뒤에 ^M이 생기는 것도 볼 수 있구요... -.-
이외에도 윈도우에서는 UTF-8로 기본 저장하지 않기 때문에 가끔 문제를 일으키기도 합니다.

하지만 리눅스에선 간단히 파일의 인코딩과 속성을 바꿀 수 있어요.

우선 파일의 속성을 살펴보기 위해 다음과 같이 입력합니다.
file test.txt
만약 도스에서 편집된 파일이면 다음과 같이 나옵니다.

test.txt: ISO-8859 text, with CRLF line terminators

이제 파일을 변환해주기 위해 다음과 같이 명령어를 입력합니다. 
dos2unix test.txt
만약 dos2unix 가 설치되어 있지 않다면.... 
sudo apt-get install dos2unix 로 설치해주세요. ^^ 이제 file test.txt 를 다시 입력해 상태를 확입합니다.

test.txt: ISO-8859 text

이제 인코딩을 바꾸어줄 순서인데요. iconv 라는 명령어와 recode 라는 명령어 두개가 있습니다. recode의 경우 *.txt를 지원해서 참 편리하지만... 이상하게도 제가 가지고 있던 파일에선 UTF-8로 변환시 한글이 왕창 깨지더군요..ㅠㅠ 저는 iconv로 변환했을 때 한글이 깨지지 않았습니다. 

iconv -f EUC-KR -t UTF-8 test.txt > test.txt1

위와 같이 입력해주는데 처음에는 현재 인코딩을, 두번째에는 원하는 인코딩을 쓰시면 됩니다. *.txt를 지원하지 않기 때문에 배치파일을 만들어서 쓰시거나 노가다를 좀 해주시면 됩니다... (라고 무책임하게 말하기ㅡ.ㅡㅋㅋ)

다시 file 명령어를 이용해 속성을 확인해보면, 

test.txt: UTF-8 Unicode text

그리고 vi를 이용해 한글이 깨졌는지 확인해보면...! 깨지지 않았죠? (전 안깨졌어요...ㅋ)

많은 파일을 쉽게 변환하는 팁을 알려드리면... 결과파일의 파일이름을 쓸 때 확장자를 조금만 바꾸어주세요. 우분투의 경우 rename 이라는 명령어(별도로 설치하셔야합니다.)를 이용해 간단히 바꿀 수 있어요. 

참고로 recode로 인코딩을 바꾸는 방법은 아래와 같습니다.

 recode -f EUC-KR *.txt

자세한 옵션설명은 구글에서 검색해보세요. ^^

'Study > Computer' 카테고리의 다른 글

Linux에서 Memory 정보 확인하기  (0) 2012.07.31
Linux에서 Valgrind 사용하기  (0) 2011.08.11
MS-SQL to MySQL  (0) 2011.02.26
프랙탈 그림 그리기 (Z^3-1=0)  (0) 2010.04.19
윈도우에서 gcc를 쓸 수 있다?  (2) 2010.01.05

+ Recent posts