grep zwischen 2 elementen

deinertsche

Erfahrenes Mitglied
Hi!
Ich möchte in einem shell-skript über grep einen Wert aus einer html-Datei auslesen.

cur=$(cat $logfile | grep '<htmlnode>\(.*\)<\/htmlnode>')

Als Ergebnis sollte nur der String, der ZWISCHEN den tags liegt, ausgegeben werden.
Wie geht das? Ich bekomme immer die ganze Zeile :-(

thx
 
Ich habs jetzt erstmal so gelöst, dass ich ein sed dahinter hänge. Ich dachte nur, es geht vielleicht eleganter:
| sed 's/<htmlnode>\(.*\)<\/htmlnode>/\1/g'
 
Hallo,

haette noch ne Variante eventuell ohne grep:

Code:
cur=$(xargs < logfile |  sed  -e 's/.*<htmlnode>\(.*\)<\/htmlnode>.*/\1/')

Gruß,

RedWing
 
Mit diesem Problem bin ich auch an Grep gescheitert..
Ich hab es gelöst, indem ich ein Python-Script geschrieben habe, dass nach dem regulären Ausdruck sucht, und den Wert in der Klammer zurück gibt.

Elegant ist das aber auch nicht. Sollte das nicht mit egrep o.Ä. gehen?

3.
 
Zurück