Curl 병렬 다운로드 파일 목록

Curl 병렬 다운로드 파일 목록

첫 번째 게시물 여기서 뭔가 엉망이 되었다면 죄송합니다 =)

Ubuntu 14.04lts 64비트 서버 버전을 사용합니다.

목록이 있습니다(URL.목록) 다운로드할 URL만 한 줄에 하나씩 포함하며 다음과 같습니다.

http://domain.com/teste.php?a=2&b=3&name=1
http://domain.com/teste.php?a=2&b=3&name=2
...
http://domain.com/teste.php?a=2&b=3&name=30000

보시다시피 파일에는 많은 줄이 있습니다(이 경우 30000). 그 때문에 나는 다음과 같이 동시에 많은 URL을 다운로드하는 트릭을 사용하고 있습니다.

cat url.list | xargs -n 1 -P 10 <<MAGIC COMMAND THAT WILL SAVE ME>>

문제는 1.html, 2.html, ..., 30000.html ecc와 같이 이름 필드의 동일한 값으로 출력 파일의 이름을 바꾸고 컬을 사용하여 파일의 크기를 제한하고 싶다는 것입니다. 파일을 50KB로 만듭니다. 따라서 컬 명령은 다음과 같아야 합니다.

curl -r 0-50000 -L $URL -o $filename.html -a $filename.log

어떻게 해야 합니까?

파이프의 출력을 다음과 같이 구문 분석할 수 있습니다.$URL 에코 | sed -n -e 's/^.*이름=//p'하지만 2개의 변수($URL 및 $filename)에서 파이프의 출력을 가져오는 동일한 줄에서 이것을 어떻게 사용하는지 모르겠습니다.

나는 이것을 시도했지만 성공하지 못했습니다.

cat url.list | xargs -n 1 -P 10 | filename=$(sed -n -e 's/^.*name=//p') ; curl -r 0-50000 -L $URL -o $filename.html -a $filename.log

미리 감사드립니다

답변1

seq 50000 |
  parallel -P 10 curl -r 0-50000 -L '"http://domain.com/teste.php?a=2&b=3&name="'{} -o {}.html -a {}.log 

관련 정보