도스에서 작업한 txt파일을 리눅스에서 불러와 작업하면 상당히 애로사항이 많게 됩니다.
파일을 편집하다 보면 뒤에 ^M이 생기는 것도 볼 수 있구요... -.-
이외에도 윈도우에서는 UTF-8로 기본 저장하지 않기 때문에 가끔 문제를 일으키기도 합니다.
하지만 리눅스에선 간단히 파일의 인코딩과 속성을 바꿀 수 있어요.
우선 파일의 속성을 살펴보기 위해 다음과 같이 입력합니다.
만약 도스에서 편집된 파일이면 다음과 같이 나옵니다.
test.txt: ISO-8859 text, with CRLF line terminators
이제 파일을 변환해주기 위해 다음과 같이 명령어를 입력합니다.
dos2unix test.txt
만약 dos2unix 가 설치되어 있지 않다면....
sudo apt-get install dos2unix 로 설치해주세요. ^^ 이제 file test.txt 를 다시 입력해 상태를 확입합니다.
이제 인코딩을 바꾸어줄 순서인데요. 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
자세한 옵션설명은 구글에서 검색해보세요. ^^