
첫 번째 게시물 여기서 뭔가 엉망이 되었다면 죄송합니다 =)
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