내 텍스트 파일이 갑자기 ^M 문자로 채워지는 이유는 무엇입니까?

내 텍스트 파일이 갑자기 ^M 문자로 채워지는 이유는 무엇입니까?

Mac 컴퓨터에 vi/vim만 사용해 편집한 텍스트 파일이 있습니다. 오늘 vi를 사용하여 열었을 때 곳곳에 많은 문자가 있는 것을 발견했습니다 ^M. 오늘 다르게 한 유일한 일은 echo "some text" >> file.txt이전에 리디렉션한 것뿐인데 다른 파일에서 재현할 수 없는 것 같습니다.

^M문자가 나타나는 이유는 무엇입니까?

답변1

이는 가설이고 질문자는 다음 작업을 모두 수행하지 않는다고 생각하기 때문에 부분적인 답변입니다.

에서와 같이논평통과랄프 렌퀴스트, "Mac에서는 ^M줄 종결자로 사용되며 Windows ^M^J에서는 Unix로 사용됩니다 ^J." Vim은 세 가지 형식을 모두 처리할 수 있습니다. 예를 들어, 새 파일을 생성하고 (예를 들어) 를 사용하여 저장할 때 사용할 파일을 지정할 수 있습니다 :set ff=mac.

vim으로 파일을 열면 vim이 자동으로 인코딩을 결정하고 적절하게 줄 바꿈을 표시할 수 있습니다. 그러나 vim은 fileformats. 따라서 만약 fileformats=unix,dos그렇다면 vim은 파일을 Mac 형식으로 여는 것을 결코 고려하지 않을 것입니다. 따라서 Mac vim에서 파일을 생성한 다음(예: Mac 줄 바꿈 사용) Linux vim에서 파일을 열면(예: vim 사용 ) 줄 바꿈 대신 fileformats=unix,dos표시됩니다 . ^M상상할 수 있듯이 Mac에서 파일이 생성된 후 전체 파일을 처리했을 수도 있습니다.

고려해야 할 또 다른 점은 하나의 형식으로 파일을 생성할 수 있는지 여부입니다 echo foo >> filename. 원본 형식이 Mac이고 Linux에서 추가하면 파일에 혼합 형식이 포함됩니다. fileformats설정이 무료라고 가정하면 (즉 fileformats=unix,dos,mac, 이 경우 vim은 Mac 형식을 선택하는 것 같습니다.

관련 정보