xargs를 사용하는 여러 인수.

xargs를 사용하는 여러 인수.

나는 xargs가 이와 같이 많은 인수를 취할 수 있다는 것을 알고 있습니다.

xargs -n5 -I{} echo {}

하지만 내가 원하는 특정 위치에 인수를 어떻게 배치합니까?

xargs -n5 -I{} curl www.google.com/{1}/testing/{2}/{3}/works/{5}

그런 일이 어떻게 달성될 수 있습니까?

답변1

나는 당신이 이것을 직접적으로 할 수 있다고 생각하지 않습니다 xargs. readCostas가 제안한 대로 사용하거나 다음을 수행하십시오.

xargs -n5 sh -c 'curl "http://www.google.com/${1}/testing/${2}/${3}/works/${5}"' curl-command

또는 URL을 작성한 후 다음으로 전달하십시오 xargs.

awk '{printf "http://www.google.com/%s/testing/%s/%s/works/%s\n", $1, $2, $3, $5}' | \
  xargs -L1 curl 

답변2

GNU Parallel의 구문을 발명했다고 생각할 수도 있습니다.

... | parallel -N5 curl www.google.com/{1}/testing/{2}/{3}/works/{5}

curlCPU당 하나씩 실행된다는 추가 이점을 얻을 수 있습니다 .

GNU Parallel은 일반적인 병렬 처리기이며 동일한 시스템 또는 SSH 액세스 권한이 있는 여러 시스템에서 작업을 병렬로 쉽게 실행할 수 있도록 해줍니다.

4개의 CPU에서 32개의 서로 다른 작업을 실행하려는 경우 병렬화하는 간단한 방법은 각 CPU에서 8개의 작업을 실행하는 것입니다.

간단한 스케줄링

대신 GNU Parallel은 프로세스가 완료되면 새 프로세스를 생성하여 CPU를 활성 상태로 유지하여 시간을 절약합니다.

GNU 병렬 스케줄링

설치

GNU Parallel이 배포용으로 패키지되어 있지 않은 경우 루트 액세스가 필요하지 않은 개인 설치를 수행할 수 있습니다. 다음과 같이 하면 10초 안에 완료할 수 있습니다.

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

다른 설치 옵션은 다음을 참조하세요.http://git.savannah.gnu.org/cgit/parallel.git/tree/README

더 알아보기

더 많은 예시 보기:http://www.gnu.org/software/parallel/man.html

소개 동영상 보기:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

튜토리얼을 살펴보세요:http://www.gnu.org/software/parallel/parallel_tutorial.html

지원을 받으려면 이메일 목록에 가입하세요.https://lists.gnu.org/mailman/listinfo/parallel

답변3

system()이를 위해 기능을 awk사용할 수 있습니다.

$ awk '{system("curl -v www.google.com/"$1"/testing/"$2"/"$3"/works/"$4)}' file.txt

여기에는 명령 file.txt에 대한 인수가 포함되어 있습니다 curl.

관련 정보