문제

면 파일을 열에서 만든 Windows,라인 모두 끝나 ^M.
어떻게 이러한 문자를 삭제하세요

도움이 되었습니까?

해결책

dos2unix 은 명령행하는 유틸리티 이것을 할 것이거나, :%s/^M//g 이 사용하는 경우 Ctrl-v Ctrl-m 를 입력^M,또는 당신 :set ff=unix 고 vim 것입니다 당신을 위해 그것을 할 수 있습니다.

에서 문서는'화일 형식을'설정 , 고,vim wiki 포함되어 있을 수 있습니다 페이지 라인 종료 전환.

또,이동할 경우 파일의 앞뒤로 많이 사용하는 것을 원하지 않을 수도 있습으로 변환을 하지만,오히려지 :set ff=dos, 므로,vim 이 그것을 알고의 DOS 파일을 사용하 DOS 규칙을 선 엔딩이 있습니다.

다른 팁

변화에서 선 종 view:

:e ++ff=dos
:e ++ff=mac
:e ++ff=unix

이로 사용할 수도 있습니다 저장 작업(w 지 절약 사용하여 라인 결말은 화면에 표시되):

:w ++ff=dos
:w ++ff=mac
:w ++ff=unix

당신은 그것을 사용할 수 있는 명령 라인:

for file in *.cpp
do 
    vi +':w ++ff=unix' +':q' "$file"
done

나는 일반적으로 사용

:%s/\r/\r/g

는 조금 이상한 것 같다,하지만 작동하는 방식 때문에 vim 치 줄 바꿈.또한 쉽게 찾을 수 있는지 기억하십시오:)

내가 선호하는 다음과 같은 명령을 사용합니다:

:set fileformat=unix

사용할 수도 있습니다 macdos 을 각각 파일을 변환 macintosh 또는 MS-DOS/MS-Windows 파일 convention.과 아무것도하지 않는 경우는 파일을 이미 올바른 형식입니다.

에 대한 더 많은 정보를 참조하십시오 vim 도움말:

:help fileformat
:%s/\r+//g

에 Vim,는 스트립 모든 운송이 반환하고 줄 바꿈.

:set fileformat=unix 로 변환하 dos unix.

dos2unix 직접 수정할 수 있습 파일 내용이 있습니다.

을 직접 사용할 수 있습니다 그것에 파일이 필요 없으며,임시 파일을 리디렉션이 있습니다.

dos2unix input.txt input.txt

위의 사용으로 우리에게 키보드입니다.사 -437 옵션을 사용하는 영국의 키보드입니다.

dos2unix -437 input.txt input.txt

변환의 디렉토리에서 파일을 dos Unix

를 사용하여 명령 라인과 sed,모든 파일을 찾을 현재 디렉토리에서 확장자가".ext"모든"^M"

@ https://gist.github.com/sparkida/7773170

find $(pwd) -type f -name "*.ext" | while read file; do sed -e 's/^M//g' -i "$file"; done;

또한,위에서 언급한 바와 같이 ^M = Ctrl+V + Ctrl+M (단지 유형 캐럿"^"기호 및 M)

tr -d '\15\32' < winfile.txt > unixfile.txt

(참조하십시오: http://kb.iu.edu/data/acux.html)

다음과 같은 단계로 변환할 수 있는 파일 형식에 대한 dos unix:

:e ++ff=dos  Edit file again, using dos file format ('fileformats' is ignored).[A 1]
:setlocal ff=unix    This buffer will use LF-only line endings when written.[A 2]
:w   Write buffer using unix (LF-only) line endings.

참고: http://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix

다음 명령을 사용:

:%s/^M$//g 

을 얻 ^M 표시 형식 CtrlV 다음 CtrlM. CtrlV 알 Vim 다음 문자 입력이다.

내가 찾는 아주 쉬운 방법:파일을 열과 함께 나노: nano file.txt

CTRL+O 하여 저장,그러나 누르기 전에 입력, 르 ALT+D 전환하는 타협 DOS 및 유닉스/리눅스 라인 엔딩 또는: ALT+M 전환하는 타협 Mac 와 유닉스/리눅스 라인 엔딩 누른 다음 입력 저장고 CTRL+X 을 종료합니다.

:g/Ctrl-v Ctrl-m/s///

CtrlM 캐릭터 \r, 거나,운송익 DOS 라인 엔딩을 추가합니다. CtrlV 알 vim 를 삽입하려면 literal CtrlM 문자에서 명령 라인입니다.

전체적으로 촬영,이 명령어 모두 대체 \r 아무것도 없이 제거하는 그들의 끝에서 라인입니다.

당신이 사용할 수 있습니다:

vim somefile.txt +"%s/\r/\r/g" +wq

dos2unix utility .

댓글에 대해 점점^M 나타나는 것은 나를 위해 일했다.단순히 입력하"^M 에서"내 vi 아무것도 없(not found).이 CTRL+V CTRL+M 시퀀스를 완벽하게했지만.

내 일체 명령

:%s/Ctrl-V Ctrl-M/\r/g

그럼 보이면:

:%s/^M/\r/g

할 수 있는 다음과 같은 명령을 사용합니다:
:%s/^V^M//g
는'^'는 사용 CTRL 키입니다.

아래의 명령을 사용한 모든 포맷.sh 파일에 현재 디렉터리에 저는 그것을 테스트에 나 Fedora OS.

for file in *.sh; do awk '{ sub("\r$", ""); print }' $file >luxubutmp; cp -f luxubutmp $file; rm -f luxubutmp ;done

일반적으로있다 dos2unix 명령을 사용할 수 있습니다 이러한지 확인,당신은 설명서를 읽으로 GNU 및 BSD 버전에 차이가 어떻게 그들이 거래된다.

BSD 버전:

dos2unix $FILENAME $FILENAME_OUT
mv $FILENAME_OUT $FILENAME

GNU 버전:

dos2unix $FILENAME

또는,당신은 당신의 자신을 만들 수 있습니다 dos2unix 의 모든 답변을 제안한 여기에,예를 들면 다음과 같습니다:

function dos2unix(){
    [ "${!}" ] && [ -f "{$1}" ] || return 1;

    { echo ':set ff=unix';
      echo ':wq';
    } | vim "${1}";
}

나이 어딘가에.여기에 FreeBSD 로그인 팁:

를 제거해야 할 모든 사람들^M 캐릭터에서는 DOS 파일입니까?도

tr -d \\r < dosfile > newfile
    -- Originally by Dru <genesis@istar.ca>

에 vim,유형:

:w !dos2unix %

이것은 파이프의 내용은 현재 버퍼 dos2unix 명령 및 결과를 작성을 통해 현재 내용이 있습니다.Vim 요청을 로드한 후 파일

을 실행하는 직접적으로 linux console:vim file.txt +"set ff=unix" +wq

하지만 이 주제에 아주 오래된,고 싶은 다른 재료에서 익명:

%s/\r\+$//g

을 채우는 모든 운송이 반환 표시(하나 이상의 담당자)까지 라인의 끝 및 삭제,그래서 그냥 \n 유 eol.

이것은 내 방법입니다.나는 열에 있는 파일 dos EOL 때 나는 저장하는 파일이 자동으로 유닉스 EOL

autocmd BufWrite * :set ff=unix

을 만드는 경우는 파일을 메모장에서 또는 NotePad++windows 에서 그것을 가져올 리눅 열에 의해 vim,당신이 볼 수^M 의 끝에서 확인할 수 있게 되었습니다.이,

에서의 리눅스 터미널,유형

dos2unix 파일명을 사용할 수 있다.ext

이 필요한 마법입니다.

내가 원하는 줄 바꿈에서 장소의^M 습니다.Perl 구조:

perl -pi.bak -e 's/\x0d/\n/g' excel_created.txt

하거나 쓰기 위해 stdout:

perl -p -e 's/\x0d/\n/g' < excel_created.txt
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top