답변:
unix2dos 를 사용할 수 있습니다 (Debian에 있음).
unix2dos file
이 구현은 삽입하지 않습니다 CR모든 전에 LF만 전에 LF이미 단 하나의 앞에되지 않습니다의 CR이진 파일을 건너 뜁니다합니다 (0x0으로의 바이트 값을 포함하는 사람들은 -> 0x1f이 이외의 범위 LF, FF, TAB또는 CR).
또는 사용 sed:
CR=$(printf '\r')
sed "s/\$/$CR/" file
또는 사용 awk:
awk '{printf "%s\r\n", $0}' file
또는 사용 perl:
perl -pe 's|\n|\r\n|' file
'\r'으로는 sed트릭을 수행합니다.
이것은 정확히 무엇입니까 unix2dos:
$ unix2dos file.txt
file.txtCRLF 줄 끝이있는 버전으로 대체 됩니다.
당신이 함께하고 싶어 sed, 당신은 모든 라인의 끝에 캐리지 리턴을 삽입 할 수 있습니다 :
sed -e 's/$/\r/' file.txt
이 대체합니다 ( s) 라인 (의 끝나기 전에 크기가 0 인 영역 오른쪽 $으로) \r. 전체 교체 (예 : unix2dos수행) 를 수행하려면 sed -i.bak표준 확장명이 아니지만을 사용하십시오. 확장이 없으면 임시 파일을 사용하십시오.
\r교체의 휴대용하지 않습니다. 적어도 Mac OSX에서는 작동하지 않습니다.
u2d, ux2dos, todos뿐만 아니라 주위 명령.
UNIX 시스템 (OS X, 리눅스)에서 변환을 수행하는 경우와 파일 열기 vi또는 vim:
$ vim my-file
삽입 모드가 아닌지 확인하려면 ESC 키를 누른 다음
:set ff=dos
또는
:set fileformat=dos
파일 형식을 설정하여 변환합니다.
파일을 작성하고 편집기를 종료하려면
:wq
커맨드 라인에서 할 수있는 일
$ vi +':w ++ff=dos' +':q' my-file
POSIX로 이것을하는 것은 까다 롭습니다 :
POSIX Sed 는 \r또는을 지원하지 않습니다 \15. 그랬더라도 in place 옵션 -i은 POSIX가 아닙니다.
POSIX Awk 는 \r및을 지원 \15하지만 -i inplace옵션은 POSIX가 아닙니다.
d2u 및 dos2unix 는 POSIX 유틸리티 가 아니지만 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
awk에서 당신은 시도 할 수 있습니다
awk '{print $0 "\r"}'
또는
awk -v r=$'\r' '{print $0 r}'
(가) $'\r'와 같은 몇 가지 쉘에서 지원하는 인용 ANSI-C 스타일의 예입니다 ksh93, bash, zsh, mkshFreeBSD의 및 sh 가능성은 단일 유닉스 규격의 문제 8에 포함되어야합니다 .
이상한 문자를 표현하는 일반적인 방법을 제공합니다. 예를 들면 다음과 같습니다.
awk -v r=$'\U0001F608' '{print $0 r}'
CR하기 전에 모든 에만 이미 단 하나의 CR이 선행되지 않는 그 LFS 전에, LF.