Сопоставьте число с фиксированными цифрами при извлечении веб-контента

Сопоставьте число с фиксированными цифрами при извлечении веб-контента

Я пытаюсь проанализировать исходные веб-страницы, пытаясь найти все href, похожие на этот:

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

где число после showtopic=является случайным (и с 6 фиксированным количеством цифр, например, 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

Как мне захватить всю строку, если я не знаю, какой номер? Может быть, второй grep с регулярным выражением? Я думал использовать диапазон в awk, похожий на:

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

или двойной grep как:

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

решение1

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

cat выводит содержимое файла, которое передается в grep. grep сравнивает его построчно и записывает целые строки в выходной текст.

В качестве альтернативы можно использовать sed:

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

Связанный контент