xargs + curl“书写体失败”(无法将多个结果保存到文件中)

我对xargs和curl有问题。

我在“ urls”文件中有url列表,我需要下载限于前9行的这些内容,并将所有内容保存到一个输出文件(或每个结果一个文件-没关系)。

xargs -P 4 -n 1 curl < urls | head -n 9 > outputfile

问题在于,只有第一个结果保存到文件中,所有其他结果均显示错误“(23)书写体失败”。即使我不将结果保存到文件中,控制台中也会出现“(23)书写主体失败”错误。

总而言之: 我需要从文件下载前9行XXXX URL,并将其保存到一个输出文件或每个URL一个文件。

Cygwin(Windows 10)和MacO上存在该问题。

mxmkeai 回答:xargs + curl“书写体失败”(无法将多个结果保存到文件中)

您的管道将输出限制为xargs输出的前9行。试试这个吧。

xargs -P 4 -i sh -c 'curl {} | head -n 9' <urls >outputfile

这可能会不可控制地混淆并行获取的输出线。如果要避免这种情况,请查看GNU parallel。如果不可接受,则可以将每个文件都写入一个单独的临时文件,并在提取完成后串联并删除这些临时文件。

本文链接:https://www.f2er.com/3132099.html

大家都在问