달력

32024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

펌 : http://www.mapoo.kr/entry/vi-%EC%82%AC%EC%9A%A9%EC%8B%9C-M-%EC%97%86%EC%95%A0%EA%B8%B0


vi(m)을 사용하다보면 윈도우즈에서 작업한 텍스트 파일에 ^M 문자가 붙는 경우를 종종 본다. 때문에 문서 보기가 상당히 귀찮아 보일 때가 있다. 특히, SQL 백업 파일을 볼 때 이 문자가 붙기도 하는데 특정한 내용을 볼 때 이런 문자가 붙은 것을 보기는 상당히 힘들다. (sun의 파일을 aix에서 받을 때에도 이런 문제가 발생한다고 한다.) 이 문자 ^M은 ^+M이 아니라 Control+v+m 이다. 따라서, 다음에 이 문자를 없앨 때도 이렇게 타이핑을 하도록 하자.

1. vi(m)이 열린 상태 

1.1 문자 치환 명령 이용

다음과 같이 문자 치환 명령으로 이 문자를 없애도록 한다.
:1,$s/^M//g

물론 이것의 입력은 다음과 같이 하도록 한다.
:1,$s/[Control]+v+m을 누른다.//g

1.2 파일 포맷 변경

 

vim 5.0 이상에서는 다음과 같이 명령을 내리도록 한다.

:set fileformat=unix
혹은
:set ff=unix
그리고, 저장하고 종료한다.
:wq

이와 반대로 끝에 ^M붙이려면 다음과 같이 한다.
:set fileformat=dos

이전 버전에서는 다음과 같이 합니다.
:set textmode 

2. 프롬프트 상에서

 

2.1 dos2unix 이용

 

dos2unix와 unix2dos를 이용하여 변환할 수 있다.

다음과 같이 하면 ^M 문자가 없어진다.
$ dos2unix [문서명](여러 파일의 경우 *.확장자)

그리고 다음과 같이 하면 ^M 문자가 생긴다.
$ unix2dos [문서명]

2.2 cat과 tr을 이용한 방법

 

다음과 같이 하면 해당 파일의 ^M 문자가 없어진다.
$ cat dos-file | tr -d ^M > unix-file

2.3 perl 스크립트

 

다음과 같이 하면 여러 파일을 한번에 바꾸게 된다.

# perl -i -pe 's/\015//g' *.html

3. 다른 에디터의 사용

 

pico라는 에디터를 이용한다. vi나 emacs에서 ^M으로 잡히는 것이 pico에서는 안 잡히는데, 파일을 pico로 열어서 다시 이 문서를 저장한다. 그리고 vi나 emacs로 읽으면 ^M이 모두 없어진 것을 알 수 있다.

4. man 페이지의 ^M, ^H 문자

 

man 페이지를 일반 화일로 바꾸면 ^M, ^H 등이 생기는데(예, 한컴리눅스 ^H) 다음과 같이 하면 이 문자를 없애고 볼 수 있다. 

다음은 ls의 예이다.

4.1 ps 또는 pdf로 변환하기

 

man -t 변경시킬 화일 > 변경 후 화일명.ps
man -t 변경시킬 화일 > 변경 후 화일명.pdf
예) man -t ls > ls.ps 또는 ls.pdf로 보시면 됩니다.

4.2 텍스로 변환하기

 

man 변환시킬화일 | col -b> 변환후 화일명.txt
예) man ls | col -b > ls.txt

Posted by tornado
|