다음 내용이 포함된 파일이 있다고 가정해 보겠습니다.
bob
john
sue
이제 이는 (이 경우) URL 패턴(예 http://example.com/persons/bob.tar
: , john.tar
, )에 직접적으로 대응됩니다 sue.tar
.
나는 이 선들을 전체적으로 연결하고 싶습니다 xargs
. 실행 중인 명령에 무엇이 전달되는지 알 수 없습니다. 프롬프트(예: 단순히 각 줄을 에코하고 싶다고 가정 ) 또는 bash 스크립트에서 cat file | xargs echo $PARAM
매개 변수에 어떻게 액세스합니까 ?
답변1
마이클의답변맞습니다. 문제가 해결되어야 합니다. 달리기
cat file | xargs -I % curl http://example.com/persons/%.tar
bob.tar
john.tar.
sue.tar
예상대로 파일이 다운로드됩니다.
하지만:여기서 고양이는 쓸모가 없어
대신 다음을 사용하십시오.
<file xargs -I % curl http://example.com/persons/%.tar
답변2
xargs
' stdin 에서 추출한 개별 줄을 항상 끝에 붙여넣는 대신 명령 중간에 삽입하는 방법을 묻는 것 같습니다 . 그렇다면 -I
플래그는 하나의 인수를 사용하며 명령에서 표준 입력에서 읽은 행으로 replacement-string
대체됩니다 .xargs
replacement-string
$ cat file | xargs -I foobar curl http://example.com/foobar.tar
답변3
답변4
GNU Parallel을 사용하면 다음을 수행할 수 있습니다.
cat urls | parallel curl {} ">" {/}
또는:
cat persons | parallel curl http://example.com/persons/{}.tar ">" {}.tar
자세히 알아보려면 GNU Parallel 소개 비디오를 시청하세요. http://www.youtube.com/watch?v=OpaiGYxkSuQ