리눅스(Linux): 개행문자(Ctrl M) ^M 제거 방법

Wookoa 2025. 4. 10.

리눅스 개행문자 Cntr M 제거 방법
리눅스 개행문자 Cntr M 제거 방법

머리말

  리눅스 시스템에서 FTP로 파일 업로드를 한 뒤 vi 또는 cat 명령어로 텍스트를 읽어 들이면 특수 문자 같은 것이 보일 때가 있다. 바로 컨트롤 M이라 불리는 문자 값 때문인 경우가 많다. 컨트롤 M의 생김새는 꺽쇄(^) 표시와 알파벳 M이 합쳐진 모양이다. 사용자가 직접 타이핑해서 입력한 ^M 문자와 사람의 눈으로 식별하기에는 동일하지만 내부적으로 다른 문자다. 본 포스팅에서는 리눅스 시스템에서 자동으로 붙을 수 있는 개행문자를 제거하는 방법에 대해서 소개하도록 한다.

개행문자 제거 방법

  컨트롤 M은 Ctrl + v + m을 순차적으로 동시에 입력하면 발생시킬 수 있다. 운영체제 간 파일 이동시 앤터값 처리방식 차이 때문에 가비지(garbage) 값처럼 남아있게 된다. 이러한 이유 때문에 컨트롤 M 문자열을 없애는 방법은 다양하게 존재한다. 다시 한번 주의할 점은 아래의 예제 중 ^M 개행문자열은 Ctrl + v + m을 눌러야 생성되며 직접 타이핑한 ^M 문자열과는 다르게 처리된다.

리눅스 운영체제의 개행문자
리눅스 운영체제의 개행문자

vi 명령어를 활용한 방법

  vi 편집기로 텍스트 파일을 오픈한 뒤 특정 명령어 입력을 통해 변경할 수 있다. 해당 방법은 vi 편집기로 오픈한 파일에 그대로 컨트롤 M 문자열을 제거한 방법이다.

:%s/^M//

:wq!

sed 명령어를 활용한 방법

  해당 명령어는 특정 파일의 문자를 사용자 임의로 파싱 할 때 사용하는 명령어다. 물론 개행 문자열을 파싱 할 때도 응용할 수 있다.

View: sed 's/^M//g' < CtrlM.sh

Save: sed -i 's/^M//g' < CtrlM.sh

tr 명령어를 활용한 방법

  마찬가지로 특정 파일의 문자를 변경하고 싶을 때 사용하는 명령어다. 아래의 예제는 파일의 문자열을 변경해서 다른 파일명으로 저장하는 방법에 대해서 소개했다.

View: tr -d '^M' < CtrlM.sh

Save: tr -d '^M' < CtrlM.sh > After.sh

awk 명령어를 활용한 방법

  마찬가지로 문자를 파싱 할 때 사용하는 명령어다. 아래의 예제는 새로운 파일 명으로 저장하는 방법에 대해서 소개했다.

View: awk 'sub(/^M/, "");' CtrlM.sh

Save: awk 'sub(/^M/, "");' CtrlM.sh > After.sh

꼬리말

  리눅스 운영체제에서 제공하는 다양한 명령어를 통해서 문자열을 변경하는 방법을 소개했다. 본인의 경우 단일 파일을 변경할 때는 주로 vi 명령어를 활용하며 복수의 파일을 변경할 경우에는 sed 명령어를 주로 활용한다. 물론 잘못 덮어쓰면 되돌릴 수 없으니 신중히 명령어를 사용해야 된다. 리눅스 운영체제에서 제공되는 기본 명령어를 통해 개행 문자열을 변경하는 방법에 대해서 소개한 본 포스팅은 이로써 마무리를 짓도록 한다.

인기있는 글

소중한 댓글 (0)