Combine um número com dígitos fixos ao coletar conteúdo da web

1

Estou tentando analisar páginas de origem, tentando encontrar todas as hrefs semelhantes a esta:

href='http://example.org/index.php?showtopic=509480

em que o número após showtopic= é aleatório (e com 6 números fixos de dígitos, por exemplo, 123456 - 654321)

while read -r line
do
    source=$(curl -L line) #is this the right way to parse the source?
    grep "href='http://example.org/index.php?showtopic=" >> output.txt 
done <file.txt #file contains a list of web pages

Como posso pegar toda a linha se não souber qual é o número? Talvez um segundo grep com um regex? Eu estava pensando em usar um intervalo no awk semelhante a:

awk "'/href='http://example.org/index.php?showtopic=/,/^\s/'" >> file.txt

ou um double grep como:

grep "href='http://example.org/index.php?showtopic=" | grep -e ^[0-9]{1,6}$ >> output.txt 
    
por heisen 28.10.2016 / 11:27

1 resposta

0

cat input.txt |grep "href='http://example.org/index.php?showtopic=" > output.txt

cat gera o conteúdo do arquivo que é enviado ao grep. grep compara linha por linha e escreve linhas inteiras no texto de saída.

Como alternativa, você pode usar o sed:

 sed -n "\#href='http://example.org/index.php?showtopic=#p"  input.txt >  output-sed.txt
    
por 31.10.2016 / 18:04