cat: erro de gravação: tubo quebrado

4

Estou executando um comando:

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

Isso faz o download de todos os URLs em urls.txt

Isso costumava funcionar bem, mas recentemente eu mudei as URLs que estou baixando de algo como: domain.com/54f-5g4/ para algo como domain.com/this-that/

E, por algum motivo, agora estou recebendo:

cat: write error: Broken pipe

Eu observei os comandos sendo executados e todos parecem bem, ou seja, sem caracteres sem escape.

Alguém tem alguma idéia do problema? Ou como obter mais informações de depuração? Eu acredito que o problema é com os comandos após o pipe.

Atualizar : achei o erro. Parece que eu acidentalmente digitei um 'no meu arquivo urls.txt. Se você está recebendo este erro, você tem um problema com o seu comando após o pipe.

    
por Kohjah Breese 16.02.2014 / 15:29

1 resposta

8

Quando você usa um pipe em um shell:

command_1 | command_2

a saída do comando_1 é canalizada para o comando_2 como entrada. Se o comando_2 terminar antes de ler toda a saída do comando_1 (por exemplo, no seu caso porque encontrou algo errado como você disse na sua atualização que você acidentalmente digitou um ' ), então o comando_1 pode reclamar que seu canal de saída foi prematuramente fechado. p>     

por Radu Rădeanu 16.02.2014 / 16:44