티스토리 뷰

개발 노트/Linux

dos2unix

오리지날초이 2013. 10. 31. 16:33

윈도우에서 생성한 input 파일을 리눅스에서 읽을 때 끝줄에 ^M 등의 특수문자가 삽입된다.

이를 해결하기 위해 사용한다.


하위 디렉토리 적용을 위해서는 아래와 같은 방법으로사용.

find 하부디렉토리 -name "*.*" |xargs dos2unix


자세한 사용법은 아래를 참고


원본 출처 : http://amornatura.tistory.com/42


도스에서 작업한 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


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



728x90
반응형

'개발 노트 > Linux' 카테고리의 다른 글

find 명령어 활용  (0) 2013.11.01
tcp port open 확인  (0) 2013.11.01
리눅스에서 압축하기, 압축풀기  (1) 2013.10.02
리눅스 기본 데몬들  (0) 2013.09.16
sendmail 트러블 슈팅 (dnsmasq 문제 해결)  (0) 2013.09.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함