에서 파일을 열면 vim
이상한 ^M
문자가 표시됩니다.
불행히도 세계에서 가장 좋아하는 검색 엔진은 쿼리의 특수 문자와 잘 맞지 않으므로 여기에서 묻습니다.
-
이
^M
캐릭터 는 무엇입니까 ? -
어떻게 거기에 도착했을까요?
-
어떻게 제거합니까?
답변
은 ^M
캐리지 리턴 문자입니다. 이것이 보이면 아마도 DOS / Windows 환경에서 시작된 파일을보고있을 것입니다. 여기서 줄 끝은 캐리지 리턴 / 줄 바꾸기 쌍으로 표시되는 반면 Unix 세계에서는 줄 끝 단일 줄 바꿈으로 표시됩니다.
자세한 내용 은 이 기사 를 읽고 newline 의 Wikipedia 항목을 참조하십시오 .
이 문서 에서는 줄 끝 표식이 다른 파일을 투명하게 편집하기 위해 vim을 설정하는 방법에 대해 설명합니다.
^M
일부 줄 끝에 파일이 있고 파일을 제거하려면 Vim에서 이것을 사용하십시오.
:s/^M$//
( Ctrl+ V Ctrl+ M를 눌러 삽입하십시오 ^M
.)
답변
대부분의 UNIX 운영 체제에는 dos2unix
CRLF를 LF로 변환 하는 유틸리티 가 있습니다. 다른 답변은 “무엇입니까”질문을 다룹니다.
답변
이를 수행하는 가장 간단한 방법은 다음 명령을 사용하는 것입니다.
dos2unix filename
이 명령은 경로 패턴에도 적용됩니다 (예 :
dos2unix path/name*
작동하지 않으면 다른 모드를 사용해보십시오.
dos2unix -c mac filename
-c
변환 모드를 설정하십시오. : CONVMODE 중 하나를 인 경우ascii, 7bit, iso, mac
에ascii
기본 인.
답변
이것은 나를 위해 일했다
:e ++ff=dos
: e ++ ff = dos 명령은 Vim에게 파일을 다시 읽도록 지시하여 dos 파일 형식을 강제합니다. Vim은 CRLF 및 LF 전용 줄 끝을 제거하고 버퍼에 각 줄의 텍스트 만 남겨 둡니다.
그때
:set ff=unix
그리고 마지막으로
:wq
답변
캐리지 리턴을 제거하는 다른 방법은 tr
명령을 사용하는 것입니다.
다음과 같은 작은 스크립트가 있습니다
#!/bin/sh
tmpfile=$(mktemp)
tr -d '\r' <"$1" >"$tmpfile"
mv "$tmpfile" "$1"
답변
다음과 sed
같이 정리할 수 있습니다 .
sed -e 's/^M$//' < infile > outfile
요령은 캐리지 리턴으로 올바르게 들어가는 방법입니다. 일반적으로 C-v C-m
리터럴 캐리지 리턴을 입력하려면 입력 해야합니다 . 당신은 또한 함께 sed 작업을 할 수 있습니다
sed -i.bak -e 's/^M$//' infile
답변
이 ^ M은 무엇입니까?
^ M은 캐리지 리턴 문자입니다. 이것이 보이면 아마도 DOS / Windows 환경에서 시작된 파일을보고있을 것입니다. 여기서 줄 끝은 캐리지 리턴 / 줄 바꾸기 쌍으로 표시되는 반면 Unix 세계에서는 줄 끝 단일 줄 바꿈으로 표시됩니다.
어떻게 거기에 도착했을까요?
파일 형식이 변경된 경우
어떻게 제거합니까?
로 파일을여십시오
vim -b FILE_PATH
다음 명령으로 저장하십시오
:%s/^M//g