캐리지 리턴(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 cr1.PNG](https://proxmox.co.kr/wp-content/uploads/mangboard/2024/07/06/F62_cr1.PNG) 그리고 cat하였다.
![cr2.PNG cr2.PNG](https://proxmox.co.kr/wp-content/uploads/mangboard/2024/07/06/F63_cr2.PNG)
나는 이걸 보고, 갑자기 모든 파일에 ^M을 지우고 싶다는 욕구가 증폭되었다.
만약 sed를 이용하여 ^M을 없애고 싶다면, 위에서 말한 대로, 모든 \r을 빈것으로 바꾸면 된다.
sed -i 's/\r//g' 파일명 이런식? ![cr3.PNG cr3.PNG](https://proxmox.co.kr/wp-content/uploads/mangboard/2024/07/06/F64_cr3.PNG)
위에서 내가 만든 test파일은 중간중간 CR-LF가 아니고 CR만 들어간 상태이다. 실제로 윈도우에서 작성한 문서에는 CR-LF가 들어가 있다. 이걸 LF로 바꿔주는 유틸리가 리눅스에 존재한다. dos2unix 다. dos2unix를 설치 후, dos2unix 파일명 하면 윈도우에서 작성한 CR-LF를 LF로 바꿔준다.
|