Vim에서 파일을 열면 이상한 ^M
문자가 보입니다.
불행히도 세계에서 가장 인기 있는 검색 엔진은 쿼리의 특수 문자를 잘 처리하지 못하므로 여기에 질문합니다.
이
^M
역할은 무엇입니까?거기까지 어떻게 갔나요?
어떻게 제거합니까?
답변1
^M
캐리지 리턴 문자 입니다 . 이것을 본다면 줄 끝이 캐리지 리턴/줄 바꿈 쌍으로 표시되는 DOS/Windows 환경과 줄 끝이 단일 줄 바꿈 문자로 표시되는 Unix 환경에서 유래한 파일을 보고 있을 것입니다.
읽다이 기사자세한 내용은 Wikipedia 항목을 참조하세요.새로운 팀.
이 기사다양한 줄 끝 표시가 있는 파일을 투명하게 편집하도록 vim을 설정하는 방법을 설명합니다.
파일 끝에 특정 줄이 있고 ^M
이를 제거하려면 Vim에서 다음을 사용하세요.
:s/^M$//
( 이 내용을 삽입하려면 Ctrl++ V Ctrl를 누르세요 .)M^M
답변2
더 쉬운 방법은 다음 명령을 사용하는 것입니다.
dos2unix filename
이 명령은 경로 패턴에도 작동합니다.
dos2unix path/name*
그래도 문제가 해결되지 않으면 다른 모드를 사용해 보세요.
dos2unix -c mac filename
-c
변환 모드를 설정합니다. 여기서 CONVMODE는 다음 중 하나입니다.ascii, 7bit, iso, mac
기본값ascii
.
답변3
이것은 나에게 효과적입니다
:e ++ff=dos
:e ++ff=dos 명령은 Vim에게 파일을 다시 읽도록 지시하여 dos 파일 형식을 강제 적용합니다. Vim은 CRLF와 LF 전용 줄 끝을 제거하고 버퍼에 각 줄의 텍스트만 남깁니다.
그 다음에
:set ff=unix
마침내
:wq
답변4
특수 문자를 입력하지 않고 Sed 내부 솔루션(복사하면 작동함):
sed -i -e "s/\r//g" filename
설명하다:
-i: in-place
-e: regular expression
\r: escaped carriage return
/g: replace globally