Beim Scraping von Webinhalten eine Nummer mit festen Ziffern abgleichen

Beim Scraping von Webinhalten eine Nummer mit festen Ziffern abgleichen

Ich versuche, eine Quellwebseite zu analysieren und alle hrefs zu finden, die diesem ähneln:

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

wobei die Zahl danach showtopic=zufällig ist (und eine feste Anzahl von 6 Ziffern hat, z. B. 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

Wie kann ich die ganze Zeile erfassen, wenn ich nicht weiß, welche die Nummer ist? Vielleicht ein zweites Grep mit einem regulären Ausdruck? Ich dachte daran, einen Bereich in awk zu verwenden, ähnlich wie:

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

oder ein doppeltes Grep als:

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

Antwort1

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

cat gibt den Inhalt der Datei aus, die an grep weitergeleitet wird. grep vergleicht ihn zeilenweise und schreibt ganze Zeilen in den Ausgabetext.

Alternativ können Sie sed verwenden:

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

verwandte Informationen