Um forro, como foi pedido:)
A variável URL_1 é usada para legibilidade. Não é necessário.
#!/bin/bash
URL_1=http://www.squid-cache.org/Versions/
curl "$URL_1" |
grep -Pzo '(?s)Stable Versions.*?langpack' |
sed -rn '$,$s_.*"(.*)">.*<td>(.*)</td></tr>.*_squid-.tar.gz_p' |
xargs -I{} wget "${URL_1}"{}
-
%código%
-
grep -Pzo '(?s)Stable Versions.*?langpack'Interpreta o padrão como uma expressão regular compatível com Perl. -
-Popção necessária para pesquisa de várias linhas. -
-zimprime apenas as partes correspondentes (não vazias) de uma linha correspondente. -
-oÉ ativado "ponto corresponde a nova linha" para o restante da expressão regular. Informações: Modificadores Inline . -
(?s)correspondência não voraz.
-
-
%código%
- crie essa parte aqui:
.*? -
sed -rn '$,$s_.*"(.*)">.*<td>(.*)</td></tr>.*_squid-.tar.gz_p'processa apenas a última linha. - Eu uso o sublinhado em vez de barra para o comando
v3/3.5/squid-3.5.26.tar.gzubstitute, devido a barras nas tags$,$es. Exemplo:</tr>em vez</td>
- crie essa parte aqui:
-
%código%
- transmitir duas partes concatenadas para o
s_foo_bar_pelos/foo/bar/:xargs -I{} wget "${URL_1}"{}ewget.
- transmitir duas partes concatenadas para o
EDIT - versão sem xargs (é desnecessário aqui):
#!/bin/bash
URL_1=http://www.squid-cache.org/Versions/
wget "${URL_1}$(curl "$URL_1" |
grep -Pzo '(?s)Stable Versions.*?langpack' |
sed -rn '$,$s_.*"(.*)">.*<td>(.*)</td></tr>.*_squid-.tar.gz_p')"