2013년 12월 2일 월요일

[Linux] 텍스트 파일에서 ^M 빼기

DOS mode 파일을 유닉스계열 시스템에서 읽으면 화면에 ^M가 표시되는데 다음과 같은 방법으로 ^M를 제거할 수 있다.

1. pico 에디터 이용하기
pico 에디터로 파일을 한번 열었다가 저장한다.

2. vi 에서의 방법
명령어모드에서 치환명령 이용, g는 global의 약자로 파일전체에 다 적용하는 옵션이다.

:%s/^M//g


3. vim에서
vim에서는 dos mode 파일을 읽어도 ^M 표시가 나타나지 않는다. 대신에 밑에 [dos]라는 표시가 나타난다. 명령어모드에서 다음과 같이 해서 unix mode 로 변경하여 실제로 ^M을 제거할 수 있다.

:set fileformat=unix

반대로 unix mode 에서 dos 모드로 변경하려면,

:set fileformat=dos


4. cat과 tr의 사용
cat은 파일의 내용을 stdout으로 프린터하고, tr은 특정 캐릭터를 바꾸거나 없애준다.
예를들어 file1.txt가 dos mode 이면

# cat file1.txt | tr -d ^M > file2.txt
이렇게 하면 ^M이 제거된 새로운 file2.txt가 생긴다.
이때 주의할 점은 절대로 두 파일명을 같게 해서는 안된다.

댓글 없음:

댓글 쓰기