この例では、並列性を使用したいと思います。
cat codigos.txt | parallel -j 10 "wget http://mywebsite.com/teste?id={}&x=&date=01/01/2017" --load-cookies=cookies.txt
3つのファイルがあります。codigos.txt
IDを含むファイル、dates.txt
日付を含むファイル、cookies.txt
要求を実行するために必要なCookieを含むファイル。
私が望むのは、私のファイルの内容を使用して、各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