\ r \ n을 \ n으로 변환하는 Bash 명령이 있습니까?


19

\ r \ n을 \ n으로 변환하는 Bash 명령이 있습니까?

Windows에서 Linux로 스크립트를 업로드 할 때 작동하려면 이와 같은 유틸리티가 필요합니다.


7
dos2unix그렇지 않으면, 일반적으로 볼 수 있습니다sed -e 's/\r$//'
falstro

1
아니요, Bash 명령은 없지만 dos2unix원하는 작업을 수행하는 Unix / Linux 프로그램이 있습니다.
추후 공지가있을 때까지 일시 중지되었습니다.

1
파일을 저장할 때 줄 바꿈 스타일을 선택할 수있는 정상적인 텍스트 편집기 만 사용하는 것이 어떻습니까?
vtest

답변:


28

있습니다 :

dos2unix

dos2unix가 요즘 항상 사용 가능한 것은 아니지만 이것은 역사적으로 올바른 대답입니다.
Jared

5

모든 유닉스에서 번역 ( tr )을 사용할 수 있습니다.

tr -d '\r'  # From \r\n line end (DOS/Windows), the \r will be removed so \n line end (Unix) remains.

1
다른 것도 제거하는 부작용이 \r있습니다. 그러나 매우 드문 일입니다.
ivan_pozdeev

5

sed로 다음과 같이 끝을 찾으십시오 .txt, .php, .js, .css.

 sed -rie 's/\r\n/\n/' \
 $(find . -type f -iregex ".*\.\(txt\|php\|js\|css\)")

5

conv줄 끝을 변환 할 수 있는 유닉스 유틸리티 가 있습니다. u2d또는 d2u또는 unix2dos또는 로 소프트 링크를 사용하여 종종 호출됩니다 dos2unix.

또한이라는 유틸리티입니다 fromdostodos.


2

man 1 ed 사용 (이전 백업없이 내부에서 파일을 편집 함-달리 : sed .. -i ".bak"...) :

ed -s file <<< $'H\ng/\r*$/s///\nwq'

나는 ed조차 몰랐지만, 그것은 일을한다 (오래된 것이지만 금)
dwana

이 명령은 다른 답변의 명령이 내가 사용하는 공유 호스팅에 존재하지 않을 때 효과적이었습니다. 감사합니다 :)
FKasa

2

POSIX로 이것을하는 것은 까다 롭습니다 :

  • POSIX Sed\r또는을 지원하지 않습니다 \15. 그랬더라도 in place 옵션 -i은 POSIX가 아닙니다.

  • POSIX Awk\r및을 지원 \15하지만 -i inplace옵션은 POSIX가 아닙니다.

  • d2udos2unixPOSIX 유틸리티 가 아니지만 ex

  • POSIX 전은 지원하지 않습니다 \r, \15, \n또는\12

캐리지 리턴을 제거하려면 다음을 수행하십시오.

awk 'BEGIN{RS="\1";ORS="";getline;gsub("\r","");print>ARGV[1]}' file

캐리지 리턴을 추가하려면 다음을 수행하십시오.

awk 'BEGIN{RS="\1";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file


0

$ recode dos .. 파일
$ flip -u 파일

(각 시스템은 비 우분투 시스템에도 존재하지만이 링크는 편리합니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.