JNB
rss

skin by 이글루스

리눅스 / UNIX

vi 에디터에서 ^M 제어문자 일괄 제거 11.10.27 13:27
^M 문자 제거하기

IBM 호환 PC에서 작성된 파일을 유닉스의 vi로 열게 되면 ^M문자가 줄의 끝마다 붙어있다.
이 문자는 PC에서 엔터키를 입력한 부분을 나타내게 된다.

어떻게 하면 vi를 사용하여 텍스트 파일에 있는 ^M 문자를 제거할 수 있을까?

:1,$ s'^M''g


간단하지만 문제는 ^M 문자를 어떻게 입력할 것인가이다. ^(hat)과 M을 차례대로 입력하면
되지 않느냐 생각들겠지만 이 문자는 제어문자로 두개가 함께쓰여 하나의 문자를 나타낸다.

컨트롤키를 누른 상태에서 v와 m을 누르면 위의 문자를 입력할 수 있다.


이 제 위의 명령에 대해 설명을 하자면..

vi에는 3가지 모드가 있다. 명령모드, 입력모드,
라인모드가 그것인데

명령모드 : 내용편집 명령을 수행하는 상태
입력모드 : 문자를 입력할 수 있는 상태
라인모드 : ex 에디터(라인에디터)의 명령을 입력할 수 있는 상태. 보통 :으로 시작함

따라서 위의 명령어는 라인모드에서 사용하는 명령어 이며
1,$ : 위치지정 1라인부터 $(마지막라인을 의미)라인까지
s : substitute
' : 항목을 구분해주는 구분자( / 를 사용해도 됨).
g : 한라인에 여러번 나타나는 경우 모두 변경. 일반적으로 이 옵션을 주지 않으면 맨처음 나타나는 놈만 변경된다.

추가적으로 위치지정할때
. : 현재라인
숫자 : 숫자번째 라인

g 가 들어갈 자리에는
c : 변경여부를 묻는다.

한가지 더!. 아래의 방법으로도 똑같은 결과를 얻을 수 있다.
:%s/^M//g <<--- 이렇게 하면 간단합니다


출처 :

http://blog.naver.com/goindole?Redirect=Log&logNo=9884044
http://okjsp.pe.kr/bbs?act=VIEW&seq=36348&bbs=bbs4&keyfield=content&keyword=&pg=0
http://achoho.egloos.com/4332175


        

    
Copyright 1999-2018 Zeroboard / skin by JY