누구나 이것이 무엇을 의미하는지 알고 있습니까? bash 입출력 파일의 sed 명령
\r
그래서 아마도 반환 운송의 공백을 스왑 :
sed -e 's/\r$//' inputfile > outputfile
이것은 내가 지금까지 가지고 무엇인가? 입력 파일에? 정말 확실하지 않습니다.
누구나 이것이 무엇을 의미하는지 알고 있습니까? bash 입출력 파일의 sed 명령
\r
그래서 아마도 반환 운송의 공백을 스왑 :
sed -e 's/\r$//' inputfile > outputfile
이것은 내가 지금까지 가지고 무엇인가? 입력 파일에? 정말 확실하지 않습니다.
이 파일은 CRLF
- 마지막 줄에서 LF
- 끝나는 줄로 변경됩니다. 전자는 각 줄이 캐리지 리턴/줄 바꿈 (CRLF
또는 \r\n
)으로 끝나는 Windows 형식 파일 인 경향이 있습니다.
UNIX 유형 파일에는 개행 문자 (LF
또는 \n
) 만 있습니다.
특히 아무것도 ($
로 나타낸) 라인의 끝에서 그 sed
명령 대체품 \r
는 s/xyzzy/plugh/
와 동일 plugh
으로 행의 최초 xyzzy
을 변경할 것이다.
sed
은 호출하는 프로그램의 이름입니다.
-e
은 다음 인수가 실행할 표현식임을 sed에게 알립니다.
s/\r$//
은 대체입니다. sed는 줄 끝 부분에있는 캐리지 리턴을 아무 것도 대체하지 말라고 말합니다. Sed는 각 라인마다 그렇게합니다.
inputfile
은 sed가 입력을 읽는 파일입니다.
>
은 리디렉션 연산자이므로 sed의 출력이 outputfile
으로 리디렉션됩니다.
기본적으로 결과는 dos2unix
(때로는 fromdos
으로 바뀜)과 동일해야합니다.
감사합니다. 그 차이점이 무엇인지 아십니까? sed -e 's/$/\ r /'inputfile> 출력 파일 캐리지 리턴을 빈 공간으로 바꾸라고 말한 것 같습니다. – user3576917
@ user3576917 : 아니요. 행 끝 ('$')을 캐리지 리턴 ('\ r')으로 바꿉니다. 대안을 보려면'unix2dos' 또는'todos'를보십시오. – choroba