sed: RE extrahieren oder sein Komplement löschen - wie?

22/06/2009 - 13:19 von Michael Scheer | Report spam
Hallo,

ich breche mir mit sed einen Ast ab. Ich möchte eigentlich etwas
(dachte ich) sehr einfaches. Ich pipe jeweils eine Zeile in sed rein.
Folgendes seien die einzigen 2 Eingabemöglichkeiten:

ENTWEDER suchstring1234 weiterertext
ODER weiterertext suchstring1234

Als Ausgabe will ich suchstring1234 bekommen. Die Ausgabe kann nur
dieses Muster haben: "suchstring[0-9]{4}".

Wie mache ich das? Muss ich über die Ersetzungsoperation gehen (/s)
und versuchen, das Komplement gegen den leeren String zu ersetzen?

Am Rande: a) kann das RE in sed auf Zeichenanzahl matchen (hier als
{4} angedeutet)? b) grep kann nur ganze Zeilen auf einen Match
ausgeben, oder?

Danke
Michael
 

Lesen sie die antworten

#1 helmut
22/06/2009 - 13:28 | Warnen spam
Hallo, Michael,

Du meintest am 22.06.09:

Folgendes seien die einzigen 2 Eingabemöglichkeiten:

ENTWEDER suchstring1234 weiterertext
ODER weiterertext suchstring1234

Als Ausgabe will ich suchstring1234 bekommen. Die Ausgabe kann nur
dieses Muster haben: "suchstring[0-9]{4}".



grep suchstring1234 $Datei | grep -q weiterertext && echo suchstring1234

Mag sein, dass damit nicht alle Nebenbedingungen erfüllt sind. Meintest
Du so etwas?

Viele Gruesse
Helmut

"Ubuntu" - an African word, meaning "Slackware is too hard for me".

Ähnliche fragen