답변:
은 ^M
캐리지 리턴 문자입니다. 이것이 보이면 아마도 DOS / Windows 환경에서 시작된 파일을보고있을 것입니다. 여기서 줄 끝은 캐리지 리턴 / 줄 바꾸기 쌍으로 표시되는 반면 Unix 세계에서는 줄 끝 단일 줄 바꿈으로 표시됩니다.
자세한 내용 은 이 기사 를 읽고 newline 의 Wikipedia 항목을 참조하십시오 .
이 문서 에서는 줄 끝 표식이 다른 파일을 투명하게 편집하기 위해 vim을 설정하는 방법에 대해 설명합니다.
^M
일부 줄 끝에 파일이 있고 파일을 제거하려면 Vim에서 이것을 사용하십시오.
:s/^M$//
( Ctrl+ V Ctrl+ M를 눌러 삽입하십시오 ^M
.)
:%s/^M/\r/g
제거하는 대신 ^M
및 교체 ^M
개행 문자로 \r
. 이 없으면 %
명령은 현재 행에만 적용됩니다. 그리고 다음 ^M
과 같이 줄의 끝에 있지 않은 몇 가지 예를 The first line.^MThe second line.
:%s/^M/
^M
UNIX에서 사용되는
\n
유닉스에서 사용 된다고 말합니다 . 즉 ASCII 코드입니다 10
, 그렇지 않으면로 알려진 ^J
.
이것은 나를 위해 일했다
:e ++ff=dos
: e ++ ff = dos 명령은 Vim에게 파일을 다시 읽도록 지시하여 dos 파일 형식을 강제합니다. Vim은 CRLF 및 LF 전용 줄 끝을 제거하고 버퍼에 각 줄의 텍스트 만 남겨 둡니다.
그때
:set ff=unix
그리고 마지막으로
:wq
ff
파일 형식을 나타 냅 니까 ? 무엇에 대해 ++ff
?
이 ^ M은 무엇입니까?
^ M은 캐리지 리턴 문자입니다. 이것이 보이면 아마도 DOS / Windows 환경에서 시작된 파일을보고있을 것입니다. 여기서 줄 끝은 캐리지 리턴 / 줄 바꾸기 쌍으로 표시되는 반면 Unix 세계에서는 줄 끝 단일 줄 바꿈으로 표시됩니다.
어떻게 거기에 도착했을까요?
파일 형식이 변경된 경우
어떻게 제거합니까?
로 파일을여십시오
vim -b FILE_PATH
다음 명령으로 저장하십시오
:%s/^M//g
나의 경우에는,
위의 아무것도 작동하지 않았습니다. 저는 Mac에서 Linux 시스템으로 CSV 파일을 복사했으며 위의 모든 명령을 사용했지만 아래의 것 외에는 아무런 도움이되지 않았습니다.
tr "\015" "\n" < inputfile > outputfile
^ M 문자가 아래와 같이 줄 사이에 샌드 스위치 된 파일이 있습니다.
Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKT6TG,TRO_WBFB_500,Trico,CARS,Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKTG0A,TRO_WB_T500,Trico,
과거에는 구성 파일이 올바르게 구문 분석되지 않고 공백에 대해 불평하는 것을 보았지만 vi를 설정하고 목록을 설정하면 공백이 표시되지 않습니다. grep filename [[space]]는 ^ M을 표시합니다.
그때 dos2unix file
도움 이 될 때