답변:
이 명령을 사용하십시오 :
fromdos yourtextfile
다른 방법으로 :
todos yourtextfile
이러한 명령은 tofrodos 패키지 (가장 최근 배포판)에 있으며 , 동일한 이름의 이전 유닉스 도구를 모방하는 두 개의 래퍼 unix2dos 및 dos2unix 도 제공합니다 .
find . -name '*.txt' -print0 | xargs -null fromdos
사용하십시오 dos2unix
.
dos2unix-DOS / MAC에서 UNIX 텍스트 파일 형식 변환기
dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...] Options: [-hkqV] [--help] [--keepdate] [--quiet] [--version]
나는 펄을 선호한다 :
perl -lne 's/\r//g; print' winfile.txt > unixfile.txt
그러나 그것은 나의 용도에 매우 적합하며, 기억하기가 매우 쉽습니다. 모든 시스템에 dos2unix 명령이있는 것은 아니지만 대부분의 작업에는 perl 인터프리터가 있습니다.
또 다른 하나는 recode 입니다. dos2unix와 iconv를 강력하게 대체합니다. 데비안 리포지토리의 "recode"패키지에서 사용할 수 있습니다 :
recode ibmpc..lat1 winfile.txt # dos2unix
recode lat1..ibmpc unixfile.txt # unix2dos
대한 AWK의 팬 :
awk '{ sub("\r$", ""); print }' winfile.txt > unixfile.txt
... 그리고 sed :
sed 's/\r$//' winfile.txt > unixfile.txt
그리고 지금 만 삭제보다 약간-덜 뒤얽힌 직선에서 16 진수 편집기에서 CR의 손으로, 우리 stackoverflow.com 친구 중 하나 에 사용 가능한, 쇠고기 (당신의 다정한 이웃 데비안 저장소에있는) 통역,
brainfuck의 dos2unix !
,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.
이것을 쓰기 위해 한 시간을 낭비한 jk에게 큰 감사를드립니다!
나는 Bash에서 이것을한다 :
cat cr_stuffed.file | tr -d \r > no_more_crs.file
나는 당신도 사용할 수 있다고 생각합니다 tr
(시도 할 수있는 재미있는 형식 파일은 없지만).
tr -d '\r' < file1 > file2
매우 쉬운 방법을 찾았습니다… nano로 파일 열기 : ## nano file.txt
Ctrl + O를 눌러 저장하되 Enter 키를 누르기 전에 Alt + D를 눌러 DOS와 Unix / Linux 줄 끝을 전환하거나 Alt : M을 눌러 Mac과 Unix / Linux 줄 끝을 전환하고 Enter를 눌러 저장하고 종료하려면 Ctrl + X를 누르십시오.
Alt+d
. 때때로 터미널 프로그램이 alt를 가로 채기 때문에 esc+d
대신 사용할 수 있습니다 .
GUI 방식을 원한다면 Kate 텍스트 편집기를 사용해보십시오 (다른 고급 텍스트 편집기에서도이를 처리 할 수 있음). 열기 찾기 / 바꾸기 (대화 Ctrl+ R), 그리고 교체 \r\n
와 함께 \n
. (NB : 드롭 다운에서 "정규 표현식"을 선택하고 옵션에서 "선택 만"을 선택 해제해야합니다.)
편집 : 또는, 당신은 단순히 유닉스 형식으로 변환 할 경우, 다음 메뉴 옵션을 사용하여 Tools
> End of Line
> Unix
.
\r\n
에 \n
다음 검색을 사용하여 / OS가 사용하는 라인 결말 기억하는 것보다 쉽습니다 대체합니다. ;)
이것을 dos2unix.py Python 스크립트에 붙여 넣습니다 .
#!/usr/bin/env python
"""\
convert dos linefeeds (crlf) to unix (lf)
usage: dos2unix.py <input> <output>
"""
import sys
if len(sys.argv[1:]) != 2:
sys.exit(__doc__)
content = ''
outsize = 0
with open(sys.argv[1], 'rb') as infile:
content = infile.read()
with open(sys.argv[2], 'wb') as output:
for line in content.splitlines():
outsize += len(line) + 1
output.write(line + '\n')
print("Done. Saved %s bytes." % (len(content)-outsize))
Python이 설치된 모든 플랫폼에서 작동합니다. 공개 도메인.
CR LF
awk 를 LF
사용 하는 방법 :
awk -v RS='\r?\n' 1
command | awk -v RS='\r?\n' 1
awk -v RS='\r?\n' 1 filename
사용 예 :
echo -e 'foo\nbar\r\nbaz' | awk -v RS='\r?\n' 1 | hexdump -C
설명:
-v RS='\r?\n'
변수 RS ( 입력 r ecord s eparator)를로 설정합니다 \r?\n
. 즉, 입력은 LF ( \n
)로 구분 된 줄 단위로 읽습니다. 이는 ( ?
) 앞에 CR ( \r
)이 올 수 있습니다.
1
awk가 실행하는 스크립트입니다. 스크립트는로 구성됩니다 condition { action }
. 이 경우 1
true로 평가되는 조건입니다. 동작이 생략되므로 기본 동작이 실행됩니다. 즉 , 현재 행을 인쇄{print $0}
하거나 간단하게 쓸 수 있습니다 {print}
.
LF
행 CR LF
: 당신은 가변 설정할 수있다 ORS
( O utput R ecord 의 출력의 라인 단부를 수정 eparator 참조). 예:
echo -e 'foo\nbar\r\nbaz' | awk -v RS='\r?\n' -v ORS='\r\n' 1 | hexdump -C
Windows 시스템에서 유닉스 시스템으로 파일을 비상 전송하는 데 필요한 파일에이 스크립트를 사용했습니다.
find . -type f | xargs file | grep CRLF | cut -d: -f1 | xargs dos2unix
find . -type f
명령을 실행중인 디렉토리에서 모든 파일을 재귀 적으로 찾습니다.
xargs file
에 전달 파일 파일의 분석을 얻기 위해 프로그램.
grep CRLF
CRLF를 보여주는 파일 의 출력 만 원합니다 .
cut -d: -f1
색상까지 출력을 얻습니다. 나머지는 버립니다. 이제 파일 이름 만 있어야합니다
xargs dos2unix