Se eu entendi corretamente, você tem um arquivo contendo uma lista de URLs (um por linha) e deseja passar esses URLs para o CURL.
Existem duas maneiras principais de fazer isso: com xargs
ou com command substitution . Com xargs
:
xargs <urls.txt curl …
Com a substituição de comandos:
curl … $(cat urls.txt)
Ambos os métodos manipulam alguns caracteres especiais, mas, considerando quais caracteres são válidos em URLs, isso não deve ser um problema, exceto que, com xargs
, aspas simples ( '
) precisam ser codificadas como %27
. Como alternativa, use xargs -l
.
Note que, como este é um site Unix, estou assumindo que você está executando uma variante Unix e chamando esses comandos de um shell Unix, como o bash. Como você está executando curl.exe
, parece estar usando o Windows. Se você for usar ferramentas Unix, eu recomendo que você faça isso de um shell Unix como bash ou zsh; O Windows não vem com xargs
mais do que com curl
, e cmd
não tem substituição de comando (pelo menos não da mesma forma). Provavelmente, existe uma maneira de fazer isso com as ferramentas do Windows, mas não sei o que é e está fora do tópico aqui.
Além disso, se você estiver usando ferramentas Unix no Windows, tome cuidado para que sua lista de URLs use finais de linha do Unix (apenas LF), e não terminações de linha do Windows (CR + LF). As ferramentas do Unix esperam que uma linha termine com o LF e trate o CR como um caractere comum. Para obter mais informações, consulte Os diretórios são listados duas vezes e muitas outras perguntas sobre este site.