Zeilen mit sed bearbeiten

A

auskenner

Jungspund
Moin Moin.

Ich hab da eine Datei mit tausenden von Zeilen die da so aussehen

....
master02_1199833205_C1_F1.ds.1199833205.img
master02_1199833205_C1_F1.ds.1199833205.info
master02_1199919642_C1_F1.ds.1199919642.img
master02_1199919642_C1_F1.ds.1199919642.info
media01_1199746811_C1_F1.ds.1199746811.img
media01_1199746811_C1_F1.ds.1199746811.info
media01_1199833206_C1_F1.ds.1199833206.img
media01_1199833206_C1_F1.ds.1199833206.info
media01_1199919643_C1_F1.ds.1199919643.img
......

Ich brauch aber nur folgendes

master02_1199919642
master02_1199919642
media01_1199746811
media01_1199746811

Wie mach ich das mit sed ??
 
Code:
sed -e "s/\([^_]*_[^_]*\)\(.*\)/\1/" dateiname

'[^_]*' ist alles, was kein Unterstich ist, d.h., das Muster sind zwei Zeichenketten, die beide kein '_' enthalten, getrennt durch ein '_'. Die Klammern '\(...\)' sorgen dafuer, dass man sich im Ersetzungsteil auf dieses Muster mit '\1' beziehen kann.
 
Danke

Ja Wow.Danke das ging aber schnell !!!!

Liebe Grüße aus Nürnberg :-)
 
Code:
 awk -F"_C1" '{print $1}' dateiname

Schön und gut, aber die Frage war ja:
Zeilen mit sed bearbeiten

AWK ist ja gut und schön, aber um einiges langsamer und im Verbrauch der Resourcen hungriger.
Deshalb gibt es die Regel:
Wenn du Shell-Buildins verwenden kannst, verwende sie.
Wenn du tr verwenden kannst, verwende es.
Wenn du sed verwenden kannst, verwende es.
Wenn alles nicht geht, verwende perl oder awk.
Reicht das immer noch nicht (fast unmöglich), schreibe ein eigenes Programm in Assembler. ;)

Nix für Ungut
Gruß Wolfgang
 

Ähnliche Themen

sed problem

sed - Bitte um Unterstützung

Hilfe für ein shell script

SED: eine Zeile mit einem Grep-Output ersetzen

sed in awk

Zurück
Oben