[gelöst] sed und letztes , durch und ersetzen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

[gelöst] sed und letztes , durch und ersetzen

Beitrag von Duff » 13.02.2009 12:22:45

Hi,

komme mal wieder nicht weiter mit sed...

Ich habe eine Zeile, die in etwa so aussieht:

Code: Alles auswählen

Name1, Name2, Name3, ...
Die Anzahl der Namen kann variieren.
Nun würde ich gerne mit Hilfe von sed das letzte auftretende ,-Komme in dem String durch und ersetzen, damit der "Satz/String" grammatisch korrekt ist.


Denke, dass ich auf die Sprunganweisungen von sed zurückgreifen muss.
Nur habe ich damit so meine Probleme...
Zuletzt geändert von Duff am 13.02.2009 13:19:37, insgesamt 1-mal geändert.
Oh, yeah!

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: sed und letztes , durch und ersetzen

Beitrag von GoKi » 13.02.2009 12:37:38

Eine einfache Variante:

Code: Alles auswählen

$ echo "Name1, Name2, Name3" | sed "s/, \([^,]*\)$/ und \1/g"
Name1, Name2 und Name3
MfG GoKi
:wq

Benutzeravatar
goeb
Beiträge: 348
Registriert: 26.08.2006 18:12:08
Lizenz eigener Beiträge: MIT Lizenz

Re: sed und letztes , durch und ersetzen

Beitrag von goeb » 13.02.2009 12:55:28

Oder Debianssed installieren:

Code: Alles auswählen

echo 'abc, def, ghi' | ssed -R 's/,(?!.*,)/ und/'
MfG, gœb

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: sed und letztes , durch und ersetzen

Beitrag von Duff » 13.02.2009 13:19:22

Danke für die Antworten. Ich muss aber auf die klassische sed-Variante zurückgreifen, da es sich um ein HP-UX handelt (sorry, hatte ich vergessen zu erwähnen).

@GoKi: So "einfach" kann es sein. Ich hatte mal wieder viel zu kompliziert überlegt und wollte es irgendwie mit sprungmarken erledigen.
Oh, yeah!

Antworten