On Sun, 27 Jan 2002, Ralph Müller wrote:
Roman Langolf wrote:
egrep macht das auch aber er gibt komplette Zeile aus. Wie kann ich denn nun nur das 'href="*"' oder am besten das * ausgeben lassen? Und dazu noch eine Zeichenkette (http://www.irgendwas.de/) vor dem * hinzufügen?
Schaue Dir den Befehl "cut" an. Also ungefähr so (ungetestet): ... temp=$(grep ... | cut ...) echo "http://www.irgendwas.de/) $temp" ...
Schwachfug. (sorry, das ist nicht boese gemeint, nur der voellig falsche Befehl fuer diesen Zweck ;) Richtig fuer diesen Fall ist: sed -n 's/.*a href="\([^"]*\)".*/\1/pi' < Eingabedatei Allerdings stellt auch das noch gewisse Anforderungen an die Eingabedatei, nicht immer sind URLs korrekt durch "" umschlossen, man sollte also eher nach <a href=...> suchen, z.B. mit: sed -n 's/.*href="*\([^">]*\)[">].*/\1/pi' < Eingabedatei Siehe 'man sed', 'info sed' oder besser noch ein gutes Buch, das sed behandelt ("Linux in a Nutshell" ist gut zum Nachschlagen, aber weniger zum Einstieg ;) Oh, und ganz wichtig: Wenn man mal gelernt hat, wie man sed-Befehle testen kann, ohne dass die Eingabedatei (oder sonst eine) ueberschrieben wird, dann ist es mit am besten, einfach Mal rumzuprobieren, um zu verstehen, was sed da macht... -dnh PS: mit perl geht's latuernich auch, wenn man die Ausgabe weiter- verarbeiten will, ist das evtl. sogar vorzuziehen, ansonsten braucht perl aber zu lange, um zu starten... Hm... Ein: perl -pe 's/.*href="?([^ ">]*?)[">].*/$1/igo;' \ < .netscape/bookmark.html spuckt mir noch ein paar unerwuenschte Sache aus... -- The Universe -- some information to help you live in it. 4 POPULATION: None.