# grep zwischen 2 elementen



## deinertsche (30. Mai 2006)

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


----------



## deinertsche (30. Mai 2006)

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'


----------



## RedWing (30. Mai 2006)

Hallo,

haette noch ne Variante eventuell ohne grep:


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

Gruß,

RedWing


----------



## dritter (4. Juni 2006)

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.


----------

