IT/Programing

^M 정체 및 제거 방법

착한아줌마 2019. 4. 26. 18:11
반응형

 

 

 

 

 

다른 운영체제 간에 파일을 전송하여 확인할 때 각 행의 끝에 ^M가 보이는 경우가 있다

예를 들어 윈도우에서 리눅스로 파일을 옮긴 경우 ^M가 보이는데 이 때이 ^M을 어떻게든 처리해야한다

 

 

 

 

우선 생기는 이유는 각 운영체제간의 개행문자 방식이 다르기 때문으로, 파일이 전송될 때 각 OS의 텍스트 처리방법으로 변환이 되지 않으면 개행문자 차이로 인해 깨져보이는 것

 

 

 

 

윈도우는 CRLF, 리눅스에서는 LF만 개행문자로 사용한다 (CR, LF 모르면 더보기 클릭)

더보기

CR(캐리지 리턴): 커서의 위치를 해당 행 맨 앞으로

LF(라인 피드): 현재 위치에서 바로 아래 행으로 이동

 

 

 

리눅스에서 파일이 해당 문제에 있을 때 해결책으로 두 가지가 있다

 

 

 

1. dos2unix 명령어

가장 간편할 수 있다

아래 명령어를 수행하면 리눅스가 인식하는 개행문자로 변경된다 (\r\n)

# dos2unix [filename]

 

 

 

2. vi 편집기를 사용하여 수정

vi로 해당 파일 열어서 깨진 개행문자를 직접 지운다

 

아래는 vi에서 깨진 개행문자를 공백으로 치환하는 명령

:%s/^M//g

 

여기서 ^M은 "shift+6" "M"이 아니고 "Ctrl+v+m"을 입력하면 됨

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 참조

https://jink1982.tistory.com/123