ref/etc

^M 없애기

민성아빠 2003. 7. 30. 08:01
1. vi 에디터를 이용해서 ^M 문자 없애는 방법

        1) tr 을 이용합니다.
                vi 에디터에서 다음과 같이 입력합니다. 여기서 1G는 첫라인으로 간다는
                뜻이고, 느낌표부터는 쉘명령 tr을 이용한다는 겁니다.

                1G!Gtr -d ^M

        2) ed 명령을 사용합니다.
                vi 에디터에서 다음과 같이 입력합니다. 여기서 : 는 아시다시피
                명령모드로 가는 거구, 1은 첫라인을 $는 마지막 라인을 의미합니다.
                그러므로 여기서 1,$ 는 첫라인부터 마지막라인까지라는 뜻이겠죠?
                s는 substitute의 약자로써 다음의 /피대체어/대체어/ 에서
                피대체어를 대체어로 바꾼다는 것입니다. 여기서는 ^M을 없애라는
                뜻이겠죠? 마지막의 g는 global의 약자로 각 라인에서 해당문자열이
                나올때마다 몽땅 바꾸라는 의미.

                :1,$s/^M//g

2. perl 을 이용하는 방법

        perl -pi -e 's/\\r//' inputfile
          

3. sed 를 이용하는 방법
          
        1 번 vi 에디터를 이용하는 방법에서 언급 되었습니다. 커맨드라인상에서
        바로 수정하는 방법.

        sed 's/^M//g' inputfile > outputfile
          
          
4. awk 를 이용하는 방법
          
        print $0 는 문서전체를 의미합니다.
          
        awk '{print $0,"\\r"}' inputfile > outputfile

5. tr 을 이용하는 방법

        1 번 vi 에디터를 이용하는 방법에서도 언급되었지만 에디터를 부르지
        않고 커맨드라인상에서 바로 고치는 방법입니다. -d 옵션은 delete를 의미.
          
        tr -d '\\015' < inputfile > outputfile

          
6. mcopy 이용시 옵션을 주는 방법

        -t 옵션을 이용하면 mcopy로 복사할때 ^M 문자가 없어지고 copy됩니다.

        mcopy -t a:/test.cap .
          
7. fromdos 명령을 이용하는 방법
          
        간단히 리눅스에 포함되어있는 유틸리티를 이용하는 방법입니다. fromdos는
        도스용 문서를 리눅스(유닉스)용으로, todos는 리눅스에서 도스용으로 변환
        할때 사용할 수 있습니다.
        fromdos inputfile


참고 : ^M 의 입력은 [Ctrl+V][Ctrl+Enter] 입니다.