xargs + curl "Failed writing body" (不能将多个结果保存到文件)
xargs + curl "Failed writing body" (cannot save more than one result to file)
我对 xargs 和 curl 有疑问。
我在 "urls" 文件中有 url 列表,我需要下载仅限于前 9 行的这些内容并将所有内容保存到一个输出文件(或每个结果一个文件 - 无关紧要) .
xargs -P 4 -n 1 curl < urls | head -n 9 > outputfile
问题是,只有第一个结果保存到文件中,所有其他结果都给出错误“(23) 写入正文失败”。即使我不将结果保存到文件,控制台中也会出现“(23) 写入正文失败”错误。
总而言之:
我需要从文件中下载 XXXX URL 的前 9 行,并将其保存到一个输出文件,或者每个 URL.
一个文件
Cygwin (Windows 10) 和 MacOs 上存在该问题。
您的管道将输出限制为 xargs
输出的前 9 行。试试这个。
xargs -P 4 -i sh -c 'curl {} | head -n 9' <urls >outputfile
这可能会无法控制地混淆并行提取的输出行。如果你想避免这种情况,也许看看 GNU parallel
。如果这是不可接受的,可以将每个写入一个单独的临时文件,并在获取完成后连接并删除临时文件。
我对 xargs 和 curl 有疑问。
我在 "urls" 文件中有 url 列表,我需要下载仅限于前 9 行的这些内容并将所有内容保存到一个输出文件(或每个结果一个文件 - 无关紧要) .
xargs -P 4 -n 1 curl < urls | head -n 9 > outputfile
问题是,只有第一个结果保存到文件中,所有其他结果都给出错误“(23) 写入正文失败”。即使我不将结果保存到文件,控制台中也会出现“(23) 写入正文失败”错误。
总而言之: 我需要从文件中下载 XXXX URL 的前 9 行,并将其保存到一个输出文件,或者每个 URL.
一个文件Cygwin (Windows 10) 和 MacOs 上存在该问题。
您的管道将输出限制为 xargs
输出的前 9 行。试试这个。
xargs -P 4 -i sh -c 'curl {} | head -n 9' <urls >outputfile
这可能会无法控制地混淆并行提取的输出行。如果你想避免这种情况,也许看看 GNU parallel
。如果这是不可接受的,可以将每个写入一个单独的临时文件,并在获取完成后连接并删除临时文件。