>> Delete No. 473 article
No. 텍스트 화일에서 ^M 빼기

등록 2000-04-05 01:39:00     조회 4
이름 최철호    

		제가 알고 있는대로 쓰겠습니다. 여러가지 방법이 있네요.
  1. vi에서 (not vim)
    vi에서 dos mode의 화일을 읽으면 줄끝에 ^M이 나타납니다.
   명령어 모드에서..
    :%s/^M//g
    %s는 치환명령입니다.
   %s/<source pattern>/<destination pattern>/mode
 
   위에서 mode에 g를 썼는데, 이것은 global의 약자로 화일
   전체에 다 적용하는 mode입니다.
  2. vim에서
    vim에서는 dos mode의 화일을 읽어도 화면에 ^M을 표시하지 않습니다.
   대신 밑에 [dos] 란게 나타나죠.
   다음과 같이 해서 unix mode로.. 즉 ^M을 빼줍니다.
    :set fileformat=unix
 
   반대로 unix mode에서 dos mode로 바꾸고 싶다면
    :set fileformat=dos
    3. cat과 tr 사용해서..
    cat은 화일의 내용을 stdout으로 프린트하고, tr은 특정 캐릭터를 바꾸거나 없애줍니다.
   이것을 이용하면 다음과 같이 할 수 있습니다.
    예를 들어 file1.txt 가 dos mode라면..
    $ cat file1.txt | tr -d ^M > file2.txt
    이렇게 하면 ^M만 제거된 새로운 file2.txt가 생깁니다.
   이때 주의할 것은 절대로 위의 두 화일명을 같게 하면 안된다는 것입니다.
   잘못하면 화일 날립니다. ;)
    4. perl을 사용해서..
    perl을 이용해서 간단하게 없애줄 수 있습니다.
   .bashrc 등에 다음과 같이 alias를 해줍니다.
    alias dos2unix="perl -pi -e 's/
/
/'"
   alias unix2dos="perl -pi -e 's/
/
/'"
    그리고 쉘에서..
    $ dos2unix file1.txt 
   
   이런 식으로 실행하면 됩니다.
    기타 다른 방법이 또 있겠지만.. 일단 제가 알고 있는 것만 여기에 써봅니다.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved