xargsとcurlに問題があります。
「urls」ファイルにURLリストがあり、最初の9行に制限されたこれらのコンテンツをダウンロードして、すべてを1つの出力ファイルに保存する必要があります(または結果ごとに1つのファイル-問題ありません)。
xargs -P 4 -n 1 curl < urls | head -n 9 > outputfile
問題は、最初の結果だけがファイルに保存され、他のすべての結果は「(23)本文の書き込みに失敗しました」というエラーが表示されることです。結果をファイルに保存しない場合でも、コンソールに「(23)本文の書き込みに失敗しました」というエラーが表示されます。
要約すると、ファイルからXXXX URLの最初の9行をダウンロードし、これを1つの出力ファイルまたはURLごとに1つのファイルに保存する必要があります。
この問題は、Cygwin(Windows 10)とMacOに存在します。
パイプラインは、出力を最初の9行のxargs
出力に制限します。代わりにこれを試してください。
xargs -P 4 -i sh -c 'curl {} | head -n 9' <urls >outputfile
これにより、並列フェッチの出力行が制御不能に混同される可能性があります。それを避けたい場合は、GNUを見てくださいparallel
。それが受け入れられない場合は、それぞれを個別の一時ファイルに書き込み、フェッチが完了したら一時ファイルを連結して削除します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加