본문 바로가기
리눅스

[linux][java] 캐리지 리턴, 라인피드

by hs_seo 2016. 11. 7.

개행을 위한 제어 문자에는 몇가지 종류가 있는데 

그중에서 가장 많이 사용하는 것이, LF, CR, CR+LF 이다. 


LF: Line Feed - \n (^M)

CR: Carriage Return - \r

CR+LF : \r\n


시스템에 따라 이중 하나만 사용해도 개행이 되는 시스템도 있고, 모두를 지원하는 시스템도 있다. 


문제는 리눅스의 개행은 \n 이고, 

자바는 \r, \n, \r\n을 모두 지원한다. 

따라서 문자열 처리중 의도하지 않은 오류가 발생할 수 있다. 


자바에서 문자열을 개항문자로 split 하여 처리하는 중 의도하지 않은 개행이 발생한다면 

이로 인한 오류일 가능성이 높으므로 문자열 처리전 LF를 제거해주 면 된다. 


제거 방법은 다음과 같다. 


<vi 에서 제거>

:%s/^M$//g


<콘솔에서 제거>

tr -d '\r' < inputfile > outputfile


<이클립스에서>

File -> Convert Line Delimiters to -> Unix





반응형