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'그러나 두 변수($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 

관련 정보