"^M"은(는) 무엇이고 어떻게 제거하나요?

"^M"은(는) 무엇이고 어떻게 제거하나요?

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

관련 정보