web-dev-qa-db-ja.com

cat:書き込みエラー:パイプが壊れています

私はコマンドを実行しています:

cat urls.txt | xargs -L 1 -P 5 timeout 40 wget

これにより、urls.txtのすべてのURLがダウンロードされます

これは以前は正常に機能していましたが、最近、ダウンロードするURLをdomain.com/54f-5g4/からdomain.com/this-that/などに変更しました

そして、何らかの理由で私は今得ています:

cat: write error: Broken pipe

実行されているコマンドを見てきましたが、それらはすべて見栄えがよく、エスケープされていない文字はありません。

誰が問題が何かを知っていますか?または、より多くのデバッグ情報を取得する方法は?問題はパイプの後のコマンドにあると思います。

更新:エラーが見つかりました。 urls.txtファイルに誤って 'を入力したようです。このエラーが発生している場合、パイプの後のコマンドに問題があります。

4
Kohjah Breese

シェルでパイプを使用する場合:

command_1 | command_2

command_1の出力は、入力としてcommand_2にパイプされます。 command_1のすべての出力を読み取る前にcommand_2が終了した場合(たとえば、誤って'を入力したとアップデートで言ったように間違っているため)、command_1は出力パイプが途中で閉じられたと不平を言う場合があります。

8
Radu Rădeanu