이 예에서는 병렬성을 사용하고 싶습니다.
cat codigos.txt | parallel -j 10 "wget http://mywebsite.com/teste?id={}&x=&date=01/01/2017" --load-cookies=cookies.txt
세 개의 파일이 있습니다. codigos.txt
ID가 포함된 파일, dates.txt
날짜가 포함된 파일, cookies.txt
요청을 수행하는 데 필요한 쿠키가 포함된 파일입니다.
내가 원하는 것은 내 파일의 내용을 사용하여 각 URL에 대한 mywebsite.com의 응답을 저장하는 것입니다.
질문:
- 두 파일의 정보를 사용하는 방법은 무엇입니까?
- URL은 "&" 부분에서 잘립니다(따옴표를 추가했음에도 불구하고). 예:
request made to http://mywebsite.com/teste?id=1
이 예에 표시된 대로(단, "&"로 인해 공백이나 잘라내기를 배치하지 않음):
cat abc-file | parallel -a - -a def-file echo
인용하다:https://www.gnu.org/software/parallel/parallel_tutorial.html
답변1
나는 당신이 실행하고 싶다고 가정합니다 :
wget http://mywebsite.com/teste?id=codigo1&x=&date=01/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo1&x=&date=02/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo1&x=&date=03/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo2&x=&date=01/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo2&x=&date=02/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo2&x=&date=03/01/2017" --load-cookies=cookies.txt
파일에 다음이 codigos.txt
포함된 경우:
codigo1
codigo2
다음 dates.txt
을 포함합니다:
01/01/2017
02/01/2017
03/01/2017
그러면 이것이 작동합니다:
mywget() {
wget "http://mywebsite.com/teste?id=$1&x=&date=$2" --load-cookies=cookies.txt;
}
export -f mywget
parallel mywget :::: codigos.txt dates.txt