Grep bis zum ersten Vorkommen

S

sgealexmeier14

Grünschnabel
Hallo Zusammen,

ich habe ein kleines Problem. :)

Die Ausgangssituation ist folgende:
Der String "<paths><paths>text1</path><path>text2</path></paths>" ist gegeben.

Ich möchte nun in einem Grep den folgenden Teilstring erhalten:
<paths><paths>text1</path>

Leider finde ich keine Lösung, wie ich das realisieren kann, da ein grep mit folgendem Parameter "grep "<paths>.*</path>" immer bis zum letzten "</path>" grept!

Im Internet bin ich schon auf die Lösung gestoßen, den grep so aussehen zu lassen:
grep "<paths>[^(</path>)]*</path>"
das funktioniert in manchen Fällen auch, aber in diesem Beispiel leider nicht (Ich weis nicht ob es an der falschen Maskierung liegt?!)


Ich hoffe Ihr könnt mir eine Lösung nennen, ich bin bald am verzweifeln ?(

Viele Grüße
 
Grep ist nicht dafür gemacht, Zeichenketten zurecht zu schneiden. Stelle einen geeigneten Filter dahinter, z.B.:
Code:
grep '<paths>.*</path>' | sed 's|</path>.*$|</path>|'
Hast Du Dich da vertippt: "<paths><paths>text1..."?
 
Hallo Spröde,
vielen Dank für deine Antwort.
Dann werde ich es nun mit dem sed-Filter dahinter machen.

Ja, das war ein kleiner Tippfehler :)

Viele Grüße
 

Ähnliche Themen

Frage zu Bash Script mit Grep Ausgabe

Hilfe bei bash - Shellscript gesucht: zusammengehörende Strings in Konfigdatei

CGI laesst sich nicht ausfuehren

Server-Monitoring mit RRDTool

SUSe Block Port

Zurück
Oben