Hallo Werner!
ich habe momentan folgendes Konstrukt (entnommen der vorhergehenden Mail von Dir):
perl -W -n -i 'input.html' -e 's/href="\([^"]*\)"/\1/g'
Leider scheint der den Quellcode der HTML-Datei als Code zu interpretieren, da ich folgende Meldungen bekomme (gekürzt): [...viele Meldungen...]
Also Du solltest Dir wirklich mal die Man-Pages von Perl zu Gemüte führen. Die Punkte im einzelnen: 1. Der Dateiname muß hinten stehen, sonst versucht Perl, die Datei als Programmdatei auszuführen. Daher die Fehlermeldungen. 2. Wenn Du um den Perl-Ausdruck einfache Anführungszeichen setzt, brauchst Du die Klammern nicht mit Backslashes zu quoten. 3. Ich verstehe nicht ganz, wie der Befehl Dir überhaupt helfen soll. Soweit ich Deinen vorhergehenden Postings entnommen habe, möchtest Du die URLs extrahieren. Was der Befehl da oben macht, ist etwas ganz anderes. Mit der Option "-i" gibst Du an, daß Perl die angegebene Datei nehmen und den hinter der Option "-e" angegebenen Befehl darauf anwenden soll. Das Ergebnis dieser Anwendung soll dann in die Datei zurückgeschrieben werden. Die Datei wird als in place verändert. Ist das wirklich das, was Du tun willst? Mit dem Ausdruck "s///g" (wenn schon, dann würde ich "s///ig" verwenden, damit Du auch sowas wie "HREF=..." erwischst), werden in der angegebenen Datei alle Ausdrücke der Form 'href="..."' ersetzt durch das, was zwischen den Anführungszeichen steht. Damit dürftest Du alle Links in der Datei zerstören, aber nicht extrahieren. Aber selbst wenn Du die Option "-i" wegläßt und aus dem Ausdruck "s///ig" einen der Form "m//ig" machst, wird nichts extrahiert. Mit der "-e"-Option liefert Dir Perl das Ergebnis der Anwendung des Perl-Ausdrucks auf die Datei nur auf stdout. Damit bekommst Du lediglich die Datei ausgegeben. Ich würde gar nicht versuchen, einen komplizierten Ausdruck in einer Zeile anzugeben. Stattdessen schreib Dir ein kleines Script und ruf dann das auf. Das dürfte einfacher und verständlicher sein. Hier ein Beispiel - vielleicht tut's das ja für Deine Zwecke schon: #!/usr/bin/perl $file = shift(@ARGV); open(FILE, $file); while (<FILE>) { if (m/href="([^"]*)"/ig) { print "$1\n"; }; } close(FILE); Wenn Du das in eine Datei names "linkExtractor.pl" schreibst und diese ausführbar machst, dann bekommst Du mit "linkExtractor.pl irgendeineDatei.html" aus dieser alle URLs extrahiert (Natürlich nur, solange sie in einer Zeile stehen). Gruß, Alex. -- Alexander Glintschert, MicroDiscovery GmbH Marienburger Strasse 1, D-10405 Berlin, Germany Tel.: +49-(0)30-44350900, Fax: +49-(0)30-443509010 alexander.glintschert@microdiscovery.de http://www.microdiscovery.de