Linux
Home / Linux
제목캐리지 리턴(Carrige Return) ^M 없애자.2024-07-06 15:42
작성자 Level 10

캐리지 리턴(Carrige Return : CR) - 커서를 맨 앞으로 이동

라인 피드(Line Feed : LF) - 새로운 줄


CR

정규식에서 \r로 표현

윈도우에서만 사용된다. 그래서 윈도우는 줄바꾸면 CR-LF이다.

vim으로 열면, ^M기호


LF

정규식에서 \n으로 표현

윈도우, 리눅스/유닉스에서 사용된다. 그래서 리눅스,유닉스 줄 바꾸면 LF이다.

vim으로 열면 안나타난다.


위에서 말한 ^M은, 꺽쇠+대문자M이 아니다.

리눅스/유닉스에서 굳이 저걸 입력하고 싶으면, insert모드에서 CTRL+v (^꺽쇠)을 누른 뒤, CTRL+m(M)을 누르면 된다.

그래서 윈도우에서 작성한 문서를 리눅스/유닉스에서 열어보면, 줄 끝마다 ^M이 나타나는 걸 볼 수 있다.


^M(캐리지 리턴)이 얼마나 골 때리는지 확인을 해보자. vim에서 test란 파일을 아래와 같이 작성하였다.

cr1.PNG
그리고 cat하였다.

cr2.PNG
 

나는 이걸 보고, 갑자기 모든 파일에 ^M을 지우고 싶다는 욕구가 증폭되었다.


만약 sed를 이용하여 ^M을 없애고 싶다면, 위에서 말한 대로, 모든 \r을 빈것으로 바꾸면 된다.


sed -i 's/\r//g' 파일명

이런식? 

cr3.PNG
 

위에서 내가 만든 test파일은 중간중간 CR-LF가 아니고 CR만 들어간 상태이다.

실제로 윈도우에서 작성한 문서에는 CR-LF가 들어가 있다.

이걸 LF로 바꿔주는 유틸리가 리눅스에 존재한다. dos2unix 다.

dos2unix를 설치 후, dos2unix 파일명 하면 윈도우에서 작성한 CR-LF를 LF로 바꿔준다.


#캐리지 리턴#carrige return#^M#제거#\r#\n
댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)