Dos to Unix 와 Unix to Dos
Programing/Technic 2015. 6. 4. 00:01 |텍스트를 처리하면서 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