sed: gleiche Wörter erkennen

moonwalker99

Lt. Commander
Registriert
Jan. 2008
Beiträge
1.976
Code:
Hello World
Hello Klaus

aa bb
bb cc
cc dd
cc ffffffff

Wie kann ich mit sed feststellen, ob zwei aufeinanderfolgende Zeilen mit dem gleichen String beginnen? In diesem Beispiel wären Hello und cc die Strings, die gefunden werden würden, um damit weitere Operationen durchzuführen.
 
Da man nicht weiß, was genau du erreichen willst, kann ich nicht sagen, ob mein Ansatz funktioniert, aber per grep und Regex sollte das einigermaßen gehen:
^(.*?).*?\s\1.*?
Die Ergebnisse musst du aber noch filtern, bevor du sie weiterverwendest, da auch leere Matches enthalten sind.

Tut mir Leid, das funktioniert doch nicht, ich habe mich geirrt.
 
Bei fragen zu SED hat mir immer dieser Link geholfen.

Code:
 # Suche nach AAA oder BBB oder CCC (wie "egrep")
 sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d    # die meisten seds
 gsed '/AAA\|BBB\|CCC/!d'                        # GNU sed
 
@moonwalker99 Also ich glaube ehrlich gesagt nicht, dass du nur mit sed oder Regex das Problem lösen kannst. Mit Regex wäre es evtl. möglich, wenn man weitere Annahmen treffen könnte.
Ist das Format immer wie in deinem Beispiel oben? Damit meine ich das Leerzeichen zwischen dem einen und dem anderen Teil einer Zeile.
 
Zurück
Oben