Curl 或读取 url 文本文件的每一行,然后将每一行输出到标记为连续数字的单独文件 - 1 2 3 等
Curl or read each line of url text file, then output each to separate files labelled as consecutive numbers- 1 2 3 etc
我有一个文本文件,其中包含 32 个 url 的列表-我将其命名为 url.txt
我想 curl 每个 url 的输出,并为每个 result/output 生成一个单独的文件(因此每个 url).我希望生成的每个连续文件都标有一个数字,从 1 到 32。url 的数量将来可能会增加,所以如果代码可以有人命名每个 url 来自1 到列表中最后一个 url 的数量,那会更好。我实现此目标的最简单方法是什么?
编辑- url 的附加信息示例(它们是 api 搜索):
http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findCompletedItems&SERVICE-NAME=FindingService&SERVICE-VERSION=1.13.0&SECURITY-APPNAME=myappname-DATA-FORMAT=XML&GLOBAL-ID=EBAY-GB&REST-PAYLOAD&itemFilter(0).name=SoldItemsOnly&itemFilter(0).value=true&itemFilter(1).name=Condition&itemFilter(1).value=3000&itemFilter(2).name=MinPrice&itemFilter(2).paramName=Currency&itemFilter(2).paramValue=GBP&itemFilter(2).value=55&itemFilter(3).name=MaxPrice&itemFilter(3).paramName=Currency&itemFilter(3).paramValue=GBP&itemFilter(3).value=300&categoryId=11233&locatedIn=European&keywords=vinyl+-collection+-signed+-single+-singles&paginationInput.entriesPerPage=1&paginationInput.pageNumber=1
http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findCompletedItems&SERVICE-NAME=FindingService&SERVICE-VERSION=1.13.0&SECURITY-APPNAME=myappname-DATA-FORMAT=XML&GLOBAL-ID=EBAY-GB&REST-PAYLOAD&itemFilter(0).name=SoldItemsOnly&itemFilter(0).value=true&itemFilter(1).name=Condition&itemFilter(1).value=3000&itemFilter(2).name=MinPrice&itemFilter(2).paramName=Currency&itemFilter(2).paramValue=GBP&itemFilter(2).value=55&itemFilter(3).name=MaxPrice&itemFilter(3).paramName=Currency&itemFilter(3).paramValue=GBP&itemFilter(3).value=300&categoryId=11233&locatedIn=European&keywords=vinyl+-collection+-signed+-single+-singles&paginationInput.entriesPerPage=1&paginationInput.pageNumber=2
例如你可以这样做:
cat url.txt | perl -e '$c=1;while(<>){chomp;`curl $_ > $c 2>/dev/null`;$c++}'
在纯 bash 中,您可以:
C=0; while read p; do C=$(($C+1)); curl "$p" > "$C.out"; done < url.txt
curl
支持下载页面范围并支持将这些页面输出到编号(或其他)唯一文件名中。
对于您的网址,请尝试:
curl -o 'output_#1.file' 'http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findCompletedItems&SERVICE-NAME=FindingService&SERVICE-VERSION=1.13.0&SECURITY-APPNAME=myappname-DATA-FORMAT=XML&GLOBAL-ID=EBAY-GB&REST-PAYLOAD&itemFilter(0).name=SoldItemsOnly&itemFilter(0).value=true&itemFilter(1).name=Condition&itemFilter(1).value=3000&itemFilter(2).name=MinPrice&itemFilter(2).paramName=Currency&itemFilter(2).paramValue=GBP&itemFilter(2).value=55&itemFilter(3).name=MaxPrice&itemFilter(3).paramName=Currency&itemFilter(3).paramValue=GBP&itemFilter(3).value=300&categoryId=11233&locatedIn=European&keywords=vinyl+-collection+-signed+-single+-singles&paginationInput.entriesPerPage=1&paginationInput.pageNumber=[1-32]'
我有一个文本文件,其中包含 32 个 url 的列表-我将其命名为 url.txt
我想 curl 每个 url 的输出,并为每个 result/output 生成一个单独的文件(因此每个 url).我希望生成的每个连续文件都标有一个数字,从 1 到 32。url 的数量将来可能会增加,所以如果代码可以有人命名每个 url 来自1 到列表中最后一个 url 的数量,那会更好。我实现此目标的最简单方法是什么?
编辑- url 的附加信息示例(它们是 api 搜索):
http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findCompletedItems&SERVICE-NAME=FindingService&SERVICE-VERSION=1.13.0&SECURITY-APPNAME=myappname-DATA-FORMAT=XML&GLOBAL-ID=EBAY-GB&REST-PAYLOAD&itemFilter(0).name=SoldItemsOnly&itemFilter(0).value=true&itemFilter(1).name=Condition&itemFilter(1).value=3000&itemFilter(2).name=MinPrice&itemFilter(2).paramName=Currency&itemFilter(2).paramValue=GBP&itemFilter(2).value=55&itemFilter(3).name=MaxPrice&itemFilter(3).paramName=Currency&itemFilter(3).paramValue=GBP&itemFilter(3).value=300&categoryId=11233&locatedIn=European&keywords=vinyl+-collection+-signed+-single+-singles&paginationInput.entriesPerPage=1&paginationInput.pageNumber=1
http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findCompletedItems&SERVICE-NAME=FindingService&SERVICE-VERSION=1.13.0&SECURITY-APPNAME=myappname-DATA-FORMAT=XML&GLOBAL-ID=EBAY-GB&REST-PAYLOAD&itemFilter(0).name=SoldItemsOnly&itemFilter(0).value=true&itemFilter(1).name=Condition&itemFilter(1).value=3000&itemFilter(2).name=MinPrice&itemFilter(2).paramName=Currency&itemFilter(2).paramValue=GBP&itemFilter(2).value=55&itemFilter(3).name=MaxPrice&itemFilter(3).paramName=Currency&itemFilter(3).paramValue=GBP&itemFilter(3).value=300&categoryId=11233&locatedIn=European&keywords=vinyl+-collection+-signed+-single+-singles&paginationInput.entriesPerPage=1&paginationInput.pageNumber=2
例如你可以这样做:
cat url.txt | perl -e '$c=1;while(<>){chomp;`curl $_ > $c 2>/dev/null`;$c++}'
在纯 bash 中,您可以:
C=0; while read p; do C=$(($C+1)); curl "$p" > "$C.out"; done < url.txt
curl
支持下载页面范围并支持将这些页面输出到编号(或其他)唯一文件名中。
对于您的网址,请尝试:
curl -o 'output_#1.file' 'http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findCompletedItems&SERVICE-NAME=FindingService&SERVICE-VERSION=1.13.0&SECURITY-APPNAME=myappname-DATA-FORMAT=XML&GLOBAL-ID=EBAY-GB&REST-PAYLOAD&itemFilter(0).name=SoldItemsOnly&itemFilter(0).value=true&itemFilter(1).name=Condition&itemFilter(1).value=3000&itemFilter(2).name=MinPrice&itemFilter(2).paramName=Currency&itemFilter(2).paramValue=GBP&itemFilter(2).value=55&itemFilter(3).name=MaxPrice&itemFilter(3).paramName=Currency&itemFilter(3).paramValue=GBP&itemFilter(3).value=300&categoryId=11233&locatedIn=European&keywords=vinyl+-collection+-signed+-single+-singles&paginationInput.entriesPerPage=1&paginationInput.pageNumber=[1-32]'