it-gundan.com

Windows와 Unix / Linux 형식간에 텍스트 파일에서 줄 바꿈을 변환하는 방법은 무엇입니까?

Windows와 Unix/Linux 형식간에 텍스트 파일의 줄 바꿈을 어떻게 변환합니까?

* nix 환경이 있지만 Windows 스타일 줄 바꿈으로 데이터를 가져오고 내 보내야합니다. 이 작업을 수행하는 표준 유틸리티 또는 명령이 있다고 생각했지만 찾을 수없는 것 같습니다.

33
alexeit

배포판에 따라 dos2unix, unix2dos, todos 또는 fromdos을 찾고있을 것입니다. 메모리에서 tofrodos 패키지의 일부로 우분투/데비안 패키지 todos/fromdos.

42
saschabeaumont

한 가지 옵션은 명령 행에서 unix2dos (및 되돌아 가려면 dos2unix)를 사용하는 것입니다.

다른 하나는 텍스트 편집기를 사용하는 것입니다.
vi : : set ff = dos를 사용하여 줄 끝을 do 줄 끝으로 설정하십시오.
emacs의 경우 : C-x [ENTER] 작업 수행 [ENTER]

선호하는 GUI 기반 편집기 (예 : jedit)의 경우 설명서 또는 Google을 확인하는 것이 좋습니다.

마지막으로 텍스트 편집기를 다루고 싶지 않고 더 일반적인 유틸리티를 사용하여 설치하거나 unix2dos가 설치되어 있지 않은 경우 :

tr -d '\r' < infile > outfile Windows-> Unix에서 이동
awk 'sub("$", "\r")' unixfile.txt > winfile.txt Unix-> Windows로 이동하려면 tr는 Unix에서 Windows로 이동할 수 없습니다.

24
Chealion

Vim에서 편집하고 set fileformat 명령.

  • MS-DOS/Windows (CR + LF 나누기)에서 * nix (LF 만 끊기)

    :set fileformat=unix
    :wq
    
  • * nix-MS-DOS/Windows

    :set fileformat=dos
    :wq
    
13
nedm

이것은 Chealion과 유사하게 Windows를 Unix 줄 끝으로 변환하는 데 사용하는 것입니다.

tr -d \\015 < windows > unix
8
Josh

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

  • POSIX Sed\r 또는 \15를 지원하지 않습니다. 그랬어도 인플레 이스 옵션 -i는 POSIX가 아닙니다.

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

  • d2u dos2unix POSIX 유틸리티 가 아닙니다. 하지만 ex

  • POSIX ex\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
1
Steven Penny