次のコマンドは、URLでいっぱいのファイルを生成し、それをgnuパラレルに入力します。 curresponse.txtの出力にも元のリクエストURLを含めたいと思います。どうすればいいですか?
cat urls.txt | parallel -j 5 curl -IL -k {} > curlresponse.txt
したがって、すべてのリダイレクト後の最終出力の例は次のようになります。
OriginalUrl
HTTP/1.1 200
Server: nginx
Date: Mon, 18 Mar 2019 07:35:11 GMT
Content-Type: text/html
Content-Length: 188
Connection: keep-alive
時にはURLがリダイレクトされる可能性があるため、最終的なhttp応答は元の要求URLを含む応答でなければなりません。
答え1
厳密に言えば:
cat urls.txt |
parallel -j 5 echo {}';'curl -IL -k {} '|' perl -ne '/^HTTP.* 200/ .. 0 and print' > curlresponse.txt
--tag
ただし、この場合は通常、各行の前に入力を追加することをお勧めします。
cat urls.txt |
parallel -j 5 --tag curl -IL -k {} '|' perl -ne '/^HTTP.* 200/ .. 0 and print' > curlresponse.txt
通常、さらなる処理が容易になる。