2009-11-20 5 views
0

이 질문의 후속 조치는 answer입니다.BASH에서 DOS 파일 내용을 명령 줄 인수로 사용

xargs로 전달되기 전에 DOS 생성 파일의 성가신 CRLF가 제거되도록 코드를 어떻게 수정할 수 있습니까?

예제 파일 'arglist.dos'. 내가 그것을 변경하는 방법

내 자신의 교육
$ xargs -n2 < arglist.unix echo cp 
cp src/file1 dst/file1 
cp src/file2 dst/file2 
cp src/file3 dst/file3 

에서, 'arglist.unix'또는 'arglist.dos'파일 중 하나를 수락하려면 :

# cat > arglist.unix 
src/file1 dst/file1 
src/file2 dst/file2 
src/file3 dst/file3 
^c 
# sed 's/$/\r/' arglist.unix > arglist.dos 

파일의 유닉스 변종이 함께 작동 같은 명령 줄에?

답변

1
cat arglist.dos | tr -d "\r" | xargs -n2 echo cp 

당신에게

cat arglist.unix | tr -d "\r" | xargs -n2 echo cp 

그래서이 두 파일 모두에서 작동과 같은 결과를 제공합니다.

tr -d "\r"

내 시스템에서

+0

감사합니다. 나는 원래 명령 행에서'<'연산자에 대한 이해를했다. 당신은 모범 이니,'xargs'는 내 버전 인'stdin'에서 입력을 받아들입니다. – Jamie

1

xargs로 파일을 전달하기 전에 d2u를 사용하여 CR을 제거하십시오.

+0

는,이 호출 모든 CR 문자를 제거' –

+0

다른 이름을 dos2unix'; 동일한 기능. –

+0

나는 같은 명령 행에서 그것을하고 싶다.'d2u' /'dos2unix'가 그것을 지원합니까? – Jamie

관련 문제