새 줄에서만 작동하는 파일이 있는데 모든 새 줄에서 작동하려면 \n
이 파일이 필요합니다 . \r\n
어떻게 해야 하나요?
예를 들어 Vim을 사용하여 이 문제를 해결했지만 :%s/\n/\r\n/g
스크립트나 명령줄 응용 프로그램을 사용하고 싶습니다. 어떤 제안이 있으십니까?
sed
or 를 사용하여 this 을 찾으려고 했지만 grep
이스케이프 시퀀스 해결 방법에 즉시 혼란스러워졌습니다(저는 이 명령을 처음 접했습니다).
관심이 있으시면 이 애플리케이션이 내 질문/답변과 관련되어 있습니다.여기
답변1
당신은 그것을 사용할 수 있습니다UNIX2DOS(데비안에서 발견):
unix2dos file
이 구현은 CR
모든 s 앞에 a를 삽입 하지 않고 아직 1이 앞에 오지 않은 s LF
만 삽입 하며 바이너리 파일(0x0 -> 0x1f 범위의 바이트 값을 포함하는 파일, 제외)을 건너뜁니다. , , 또는 ).LF
CR
LF
FF
TAB
CR
또는 다음을 사용하십시오 sed
.
CR=$(printf '\r')
sed "s/\$/$CR/" file
또는 다음을 사용하십시오 awk
.
awk '{printf "%s\r\n", $0}' file
또는:
awk -v ORS='\r\n' 1 file
또는 다음을 사용하십시오 perl
.
perl -pe 's|\n|\r\n|' file
답변2
답변3
Unix 시스템(OS X, Linux)에서 변환하는 경우 vi
다음 파일을 사용하거나 엽니다 vim
.
$ vim my-file
ESC 키를 눌러 삽입 모드가 아닌지 확인한 다음 다음을 입력하세요.
:set ff=dos
또는
:set fileformat=dos
이는 적절한 변환을 위한 파일 형식을 설정합니다.
파일에 쓰고 편집기를 종료하려면 다음을 사용하십시오.
:wq
명령줄에서 할 수 있는 일
$ vi +':w ++ff=dos' +':q' my-file
답변4
이식 가능한 쉘 함수는 다음을 수행할 수 있습니다.
u2dos() (set -f; IFS='
'; printf '%s\r\n' $(cat "$1"))
그래서 당신은 이것을 할 수 있습니다 :
u2dos file >dosfile