Esse truque geral funciona mesmo se o arquivo de configuração de curvas contiver opções diversas, como user-agent, referer, etc.
Primeiro, assuma o seu arquivo de configuração chamado curl_config e use awk '/^[Uu][Rr][Ll]/{print;print "output = dummy/"++k;next}1' curl_config > curl_config2
para criar um novo arquivo de configuração de curl que acrescente incrementalmente diferentes nomes de arquivo de saída em cada url / URL:
Exemplo:
[xiaobai@xiaobai curl]$ cat curl_config
URL = "www.google.com"
user-agent = "holeagent/5.0"
url = "m12345.google.com"
user-agent = "holeagent/5.0"
URL = "googlevideo.com"
user-agent = "holeagent/5.0"
[xiaobai@xiaobai curl]$ awk '/^[Uu][Rr][Ll]/{print;print "output = dummy/"++k;next}1' curl_config > curl_config2
[xiaobai@xiaobai curl]$ cat curl_config2
URL = "www.google.com"
output = dummy/1
user-agent = "holeagent/5.0"
url = "m12345.google.com"
output = dummy/2
user-agent = "holeagent/5.0"
URL = "googlevideo.com"
output = dummy/3
user-agent = "holeagent/5.0"
[xiaobai@xiaobai curl]$
Em seguida, mkdir dummy
para criar um diretório para armazenar esses arquivos temporários. Crie inotifywait
session (Substitua o sed '/ google / q' pelo seu sed '/ mortgage / q'):
[xiaobai@xiaobai curl]$ rm -r dummy; mkdir dummy;
[xiaobai@xiaobai curl]$ rm final
[xiaobai@xiaobai curl]$ inotifywait -m dummy -e close_write | while read path action file; do echo "[$file]">> final ; sed '/google/q' "$path$file" >> final; echo "$path$file"; rm "$path$file"; done;
Setting up watches.
Watches established.
Abra outro arquivo bash / terminal, rm final , se existir, e execute o curl com o arquivo curl_config2 criado no primeiro passo acima:
[xiaobai@xiaobai curl]$ curl -vLK curl_config2
...processing
Agora, dê uma olhada na sessão inotifywait, ele irá imprimir o último arquivo por perto, sed-lo e removê-lo imediatamente, uma vez feito:
[xiaobai@xiaobai curl]$ inotifywait -m dummy -e close_write | while read path action file; do echo "[$file]">> final ; sed '/google/q' "$path$file" >> final; echo "$path$file"; rm "$path$file"; done;
Setting up watches.
Watches established.
dummy/1
dummy/3
Por fim, você pode observar sua saída denominada final . O separador [1 e 3] é gerado a partir de echo "[$file]">> final
acima:
A razão de remover o arquivo imediatamente é porque eu suponho que seu arquivo de saída é grande e muitos URLs precisam continuar, então ele pode economizar espaço em disco para removê-lo imediatamente.