텍스트를 처리하면서 Unix(Linux)환경과 Windows(Dos)환경의 차이로 인한 오류가 발생하기도 한다.

그 중 많이 발생하는 오류가 개행문자로 인한 오류가 된다.

이유는 Unix(Linux)에서는 개행문자를 LF(\n)로 사용되지만 Windows(Dos)는 CRLF(\r\n)로 사용되기에 발생하는 문제다.

그래서 환경이 변했을 때 아래 명령어를 실행해주면 개행문제를 해결 할 수 있다.


1. dos2unix와 unix2dos명령어


 

 Dos -> Unix

 Unix -> Dos

 명령어

 dos2unix myFile.txt

 unix2dos myFile.txt


만약 명령어가 없을 경우 아래 주소에서 rpm을 설치해주면 된다.

http://www.perzl.org/aix/index.php?n=Main.Unix2dos


2. Perl 스크립트 사용


 

 Dos -> Unix

 Unix -> Dos

 명령어

 perl -i -p -e 's/\r//' myFile.txt

 perl -i -p -e 's|[\r\n]+|\r\n|g' myFile.txt


3. 명령어 sed 사용


 

 Dos -> Unix

Unix -> Dos 

 명령어1

 sed -i -e 's/\r//' myFile.txt

 sed -i -e 's/$/\r/' myFile.txt

 명령어2

 sed 's/^M$//' input.txt > output.txt

 sed 's/$'"/`echo \\\r`/" input.txt > output.txt


출처

- http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/

- http://en.wikipedia.org/wiki/Unix2dos

http://cafe.naver.com/daousw/710




Posted by 핸꾸
: