개행을 위한 제어 문자에는 몇가지 종류가 있는데
그중에서 가장 많이 사용하는 것이, 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
반응형
'리눅스' 카테고리의 다른 글
[error] error: command 'gcc' failed with exit status 1 오류 (0) | 2019.09.10 |
---|---|
[리눅스][vi] vi 편집기에서 모든 라인을 지우는 법 (0) | 2017.05.08 |
[hadoop][python][linux] sudo: no tty present and no askpass program specified 오류 처리하기 (0) | 2016.10.05 |
You have new mail in /var/spool/mail/ 메시지가 올 때 처리방법 (0) | 2016.07.08 |
curl 명령어 팁 (0) | 2016.04.10 |