Siegfried Peter wrote:
Hallo Liste, Halli-Hallo
Ich würde gern die Links zu bestimmten Servern aus diversen HTML-Dateien extrahieren und in eine zweite Datei schreiben. Mein Lösungsansatz:
#!/bin/bash cd /home/foo/ find -name '*.htm' -exec cat {} \; | grep 'URL1.com'
/home/foo/URLS.html find -name '*.htm' -exec cat {} \; | grep 'URL2.COM'
/home/foo/URLS.html exit 0
Geht schon in die richtige Richtung..
liefert mir zwar alle Zeilen in denen einer der Suchbegriffe vorkommt, jedoch auch den Rest der in dieser Zeile steht. Wie kann ich jetzt noch den eventuellen Rest der nicht zum Link gehört eliminieren (Zeilenanfang bis zum Link, vom Link bis zum Zeilenende bzw. zum nächsten Link, eventuell muss nach nem Link ein Zeilenumbruch eingefügt werden)?
RegEx und die richtigen Optionen bei grep ;) z.B: find . -iname '*.htm*' -exec grep -hoP '<[aA][^>]+>.*?</[aA]>' \{\} \; -h: keine Dateinamen davorstellen -o: nur das auasgeben, was auf das Pattern matched -P: Perl RegEx benutzen Bei der Regex da oben muesste man jetzt nur noch auf MATCH_DOT_ALL umstellen, damit man auch links ueber mehrere Zeilen rausgrepen kann. Das kann man weiter begreppen nach dem href oder die RegEx weiter ausbauen... [snip]
Danke für jede Hilfe
Siegfried Peter
Gruss Jan -- ...the nipple is the only 'intuitive' user interface