1. vi에서 (not vim)
vi에서 dos mode의 화일을 읽으면 줄끝에 ^M이 나타납니다.
명령어 모드에서..
:%s/^M//g
%s는 치환명령입니다.
%s///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/\\r\\n/\\n/'"
alias unix2dos="perl -pi -e 's/\\n/\\r\\n/'"
그리고 쉘에서..
$ dos2unix file1.txt
이런 식으로 실행하면 됩니다.