You cannot see this page without javascript.

진주성 블로그 방문하기

OS vi, vim ^M 제거

2021.04.02 00:56

구피천사 조회 수:38

 

vi, vim ^M 제거


윈도우에서 작성한 파일을 Unix/Linux상에 올리면 개행 문자가 깨져서 ^M가 보이는 경우를 봤을 것이다.

이것은 윈도우에서는 CRLF 가 개행인데 Linux/Unix에서는 LF가 개행이라 나타나는 현상으로 보면 된다.

 

[CR,LF 뜻]

라인피드(LF : Line Feed) => 현재 위치에서 바로 아래로 이동

캐리지리턴(CR: Carriage return) => 커서의 위치를 앞으로 이동

 

설명은 이정도로 하고 제거 방법을 알아 보자

 

vi, vim에서 제거 하는 방법

 

결론부터 말하면 다음과 같이 하면 된다.

:%s/^M//g

위에서 ^M는 ^+M 이 아니고 Ctrl + v + m 이다.

 

vi에서 입력한 각 명령어에 대해 설명 하겠다.

:         --> vi,vim에서 명령어를 입력 하겠다는 신호

:%s       --> 문자열을 치환하겠다는 명령어

:%s/^M    --> ^M 문자열을 치환하겠다

:%s/^M//  --> ^M 문자열을 공백으로 치환하겠다.

:%s/^M//g --> 해당 문서 전체 ^M 문자열을 공백으로 치환하겠다.

 

 

윈도우에서 Unix/Linux로 파일 올릴때 ^M 안생기게 하는 방법

 

운영체제 마다 줄바꿈 정의가 다르다. 

각 운영체제 마다 정의를 살펴 보자.

 

윈도우/DOS : CRLF 조합으로 줄바꿈을 정의

Unix/Linux/C : LF 만으로 줄바꿈을 정의

 

이래서 윈도우에서 작성 된 것을 Unix/Linux 계열로 올리면 vi로 편집했을 때 ^M이 붙는 것을 확인 할 수 있다.

물론 ftp로 올릴 때 방식이 텍스트/2진 어떤 것을 선택하느냐에 따라 달라질 수 있다.

텍스트 방식으로 올리면 데이터 변환이 생겨 /r/n -> /n 으로 된다. 

2진 모드로 올릴때는 변환이 생기지 않아 윈도우에서 작성된 파일이 컴파일이 안되거나 script작성 된것이 동작 안할 수가 있다.

번호 제목 날짜 조회 수
170 Restore Database And Rename Database Files Example 2019.03.26 60304
169 Dns 보안 file 2017.08.23 20211
168 Sun t2000 manual file 2017.08.24 19866
167 AD(Active Directory) 2017.11.01 18593
166 한글 putty file 2017.09.13 11998
165 Tear Drop / Tiny Fragment / Fragment Overlap(고전적인방법) file 2017.10.17 8824
164 Cain & Abel is a password recovery tool 2018.03.12 8061
163 win-sshfs for windows file 2017.09.13 7770
162 룰 기반의 IDS(침입탐지시스템) - snort file 2017.09.27 7653
161 HP-UX snmp 중지 설정 2017.09.07 6859
160 VPN 2017.11.01 5138
159 보안관제 file 2017.11.01 4767
158 아파치 2.2.29 버젼에서 SSLProtocol 중 TLSv1.2로 설정 2019.02.27 4416
157 tcpdump - dump traffic on a network [1] file 2017.10.13 4027
156 윈도우용 wget file 2017.09.28 4017
진주성 블로그 방문하기
CLOSE