변환 DOS 라인 엔딩 리눅스에서 선 종 vim
문제
면 파일을 열에서 만든 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
사용할 수도 있습니다 mac
나 dos
을 각각 파일을 변환 macintosh 또는 MS-DOS/MS-Windows 파일 convention.과 아무것도하지 않는 경우는 파일을 이미 올바른 형식입니다.
에 대한 더 많은 정보를 참조하십시오 vim 도움말:
:help fileformat
:%s/\r+//g
에 Vim,는 스트립 모든 운송이 반환하고 줄 바꿈.
:set fileformat=unix
로 변환하 dos unix.
from: http://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix
[Esc]:%s/ $//
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