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