Mit sed ab einem bestimmten Zeichen den rest anzeigen

R

ramann

Eroberer
Hi all,
versuche gerade mit sed folgende Problematik zu lösen:

Ab dem ersten _ soll der Rest eines Stings ausgegeben werden. Vor dem _ gibt es folgendes Muster: [Zahl/Zahlen].[Zahl/Zahlen].[Zahl/Zahlen]_text-ausgeben

Der auszugebene String kann auch _ enthalten.

Habe in einem älterem Beitrag

$ VAR=$(sed -e 's/.* ; \([[:digit:]]*\)_.*/\1/g' daten)

gefunden, welcher Zahlen vor dem _ ausgeben soll und versucht es umzubauen...

aber irgentwie steige ich da nicht durch


thanks for help
bjoern
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Beispiel:

12.23.4.56_hallo_du

ausgabe: hallo_du
 
Zuletzt bearbeitet:
Das Ganze lässt sich auch ohne 'sed' lösen:
Code:
user:~$ export value=12.213.123_hallo_du
user:~$ echo ${value#*_}
hallo_du
Gruss
d22
 
Code:
#> cat test
12.23.4.56_hallo_du
#> sed -e 's/[^_]*_\(.*\)/_\1/g' test
_hallo_du

Der Ausdruck '[^_]*' passt auf den String aus 0 oder mehreren Zeichen, der NICHT (^) den Unterstrich enthaelt. Dann soll der erste Unterstrich kommen. Alles, was danach kommt, ist egal. Um sich darauch beziehen zu koennen, wird es in die Klammern \(...\) gepackt, so dass man es mittels '\1' wieder ausgeben kann. Man koennte auch
Code:
sed -e 's/[^_]*\(_\)\(.*\)/\1\2/g' test
nutzen, haette den gleichen Effekt
 

Ähnliche Themen

Last mit etc/passwd anzeigen lassen

Zurück
Oben