Website Quellcode mit bash auslesen?

2 Antworten

Der "o" Schalter vom grep Kommando liefert dir "nur" den aktuellen Treffer, und nicht die Zeile.

Da grep aber keine Gruppen unterstützt, kannst du auch - falls du komplexere Dinge verarbeiten musst - zwei grep-Kommandos hintereinander hängen:

wget -qO- 'website.tld/pfad/datei.ext' | grep -oiP 'href="https?://[^"]+"' | grep -oiP 'https?://[^"]+'

Das "O-" leitet die heruntergeladene Datei auf die Standardausgabe um, also brauchst du keine temporäre Datei mehr. "-q" sagt wget einfach nur, dass du keine weiteren Ausgaben wünschst.

Das erste grep liefert alle href-Attribute, die eine absolute URL beginnend mit "http" oder "https" enthalten. Das zweite grep extrahiert den reinen Link.

(Falls du keine mächtigen Perl Regexen benötigst, kannst du auch auf die "-P" Option verzichten, und statt mehrere grep Kommandos durch Pipe, lieber mehrere Regexen durch "-e" verbinden!)

Viel Spaß! :)