acho que isso funcionará
grep -oP "http:\//[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\+&%\$#\=~])*.jpg" inputfile | xargs -n1 wget
ou se você tem lista, então você pode usar
cat list.txt | xargs -n1 wget
Temos um fornecedor que nos envia xml feeds de novos itens com o caminho e o nome da imagem apropriados. Eu criei um script que tira o caminho do endereço da web para a imagem, mas se eu tentar obtê-los com o wget, recebo um erro de protocolo. Eu tentei usar wget -i list.txt
. Se eu usar outras ferramentas semelhantes, não tenho um problema. O que estaria causando o problema e o que é melhor sugerido?
acho que isso funcionará
grep -oP "http:\//[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\+&%\$#\=~])*.jpg" inputfile | xargs -n1 wget
ou se você tem lista, então você pode usar
cat list.txt | xargs -n1 wget
Sem ver uma amostra da entrada e pelo menos o núcleo do seu script, posso apenas especular que as URLs estão sendo interferidas pelo espaço maléfico yetis. Eles são notórios por esse comportamento irresponsável - sua única esperança é chamar o suporte técnico Area 51.
Ou talvez forneça amostra e script aqui. Uma ideia maluca, mas pode ajudar. Anonimiza ou ofusca-os se necessário, mas sem atrapalhar a estrutura do arquivo XML.
Vou adivinhar que você está usando um regexp simples e ressaltar que, como regra geral, "analisar" XML com regexps não é uma boa ideia - é frágil e facilmente confundido por uma entrada válida mas inesperada. .utilize uma biblioteca ou função de análise xml ou até mesmo uma ferramenta como xml2 para extrair as URLs dos arquivos XML .
Note também que, como sugerido por Deer Hunter acima, se as URLs contiverem espaços ou caracteres de pontuação com significado especial para o shell (por exemplo, &
, ?
, *
e muitos outros), você precisará para citar ou escapar do URL antes de usá-lo em uma linha de comando do wget. Como um exemplo muito simples, use wget "$URL"
em vez de apenas wget $URL
- observe as aspas duplas em torno da variável $ URL.
depois de muita revisão, descobrimos que a rede era um problema. O script wget funcionaria para outros sites e os links baixados com ferramentas baseadas em janelas, como o jdownloader. Por alguma razão, o lado baseado em Linux não acessaria o servidor web do NT do fornecedor. Nós instalamos o winbind, mas o exame da rede está em ordem.
Tags wget