Teilstring extrahieren

C

crazy69

Grünschnabel
Hallo zusammen,

ich suche nach einer Möglichkeit aus einem String einen Teil auszuschneiden.
Gegeben sei z.B. der String:
* fcid 0xb400a0 [pwwn 20:01:00:02:be:01:00:01] [test_fc1]

Ich möchte nun hier den Teilstring "20:01:00:02:be:01:00:01" extrahieren.
ich dachte daran, irgendwie nach "pwwn" zu suchen und darauf folgenden Zeichen herauszuschneiden, bekomme es aber nicht hin.

Hat jemand von euch die Idee, wie man das mit awk oder sed machen kann?
Falls ja, kann ich irgendwie auch noch prüfen, ob hier tatsächlich ein String zurückkommt, den ich erwarte (sprich die WWN)?

Vorab vielen Dank für eure Hilfe!
 
Code:
echo "$zeile" |  sed -r -e 's/^.* ([0-9a-f:]+)\].*$/\1/'
 
Hi,

vielen Dank, ich hätte wahrscheinlich erwähnen müssen, dass ich es unter AIX verwenden muss, beim Testen des Codes bekomme ich den Fehler, dass es die Option -r nicht gibt:

root@host:/ > echo "$zeile" | sed -r -e 's/^.* ([0-9a-f:]+)\].*$/\1/'
sed: Not a recognized flag: r
Usage: sed [-n] [-u] Script [File ...]
sed [-n] [-u] [-e Script] ... [-f Script_file] ... [File ...]


Gibt es unter AIX ein anderes passendes Flag?
 
Hi,

habe kein AIX-System, aber eventuell funktioniert das ja auch ohne erweiterte reguläre Ausdrücke (-r), indem du zunächst alles bis 'pwwn' gefolgt von beliebig vielen Spaces, und danach alles was nicht in das Muster passt, eliminierst:

Code:
sed -e 's/.*pwwn *//' -e 's/[^0-9a-f:].*//'

Gruss
 
Perfekt!
Vielen Dank, das hat funktioniert!
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Problem mit SATA

Mein Server versendet SPAM in Massen

CSV Datei mit sed manipulieren/optimieren/ergänzen

Ubuntu X / dbus problem

Zurück
Oben