• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit suchen und erstetzen in zeichenketten (sed)

hbral

Newbie
Hallo

Ich möchte bei einer Zeichenkette die in etwa so aussieht

| | | datei

das letzte | ersetzen durch +- zB.

also das dann sowas bei herauskommt

| | +-datei

wichtig ist die anzahl der | | | ist variabel also ich müss schon das letzte vorkommende | ersetzen durch +-

weiß jemand den befehl dazu

also ich brauch jetzt keinen Tip
wie zB "das kannst du mit sed machen" weil ich das damit schon stundenlang herumprobiert habe

danke
 
OP
H

hbral

Newbie
danke aber ich muss das zeichen "|" nicht ausschneiden sondern durch etwas ersetzen nämlich "+-" das muss doch irgendwie mit sed gehen

noch ein Beispiel

wenn ich meine Zeichenkette " | | | info3" in sed -e 's!|!+-!' packe
liefert er mir "+- | | info3"

ich möchte eigentlich nur wissen wie bekomme ich es hin, das sed von hinten anfängt im String nach | zu suchen und es dann durch +- ersetzt
 
A

Anonymous

Gast
hbral schrieb:
ich möchte eigentlich nur wissen wie bekomme ich es hin, das sed von hinten anfängt im String nach | zu suchen und es dann durch +- ersetzt

sed sucht immer von links nach rechsts, du musst sed nur logisch genau sagen nach was er suchen soll:
Suche "|" ; wobei zwischem diesem "|" und dem Zeilenende jede beliebig lange Zeichekette aus beliebigen Zeichen stehen kann, sie darf nur kein "|" enthalten.

Code:
 sed -e 's!|\([^|]*\)$!+-\1!'

robi
 
Oben