String bei nur einem Zeichen trennen. awk oder sed?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
duese
Beiträge: 651
Registriert: 12.07.2006 15:27:20
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

String bei nur einem Zeichen trennen. awk oder sed?

Beitrag von duese » 28.08.2010 13:23:07

Hallo!

Ich habe hier ein kleines Problem bei einem Bash-Skript. Ich würde gerne einen String beim Aufkommen des ersten Doppelpunktes in zwei Hälften aufteilen.

Beispiel:
Aus

Code: Alles auswählen

string="aaa: bbb:ccc"
Soll werden

Code: Alles auswählen

teil1="aaa"
teil2="bbb:ccc"
Irgendwie kommt mir die zündende Idee/Lösung nicht...

Kann mir da einer helfen?

Gruß,
Thomas

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: String bei nur einem Zeichen trennen. awk oder sed?

Beitrag von rendegast » 28.08.2010 13:50:07

Gruppierung mit (gequoteten) Klammern?

Code: Alles auswählen

sed 's@^string="\([^:]*\):\(.*\)"$@teil1="\1"\nteil2="\2"@'
\1 sind beliebige Nicht-":"-Zeichen bis zum ersten ":", \2 der Rest, \n eine Newline.
teil1 und teil2 sind dabei jedoch feste Strings.
Die Evaluierung einer Variablen innerhalb einer sed-Ersetzung???

Eventuell ist eine Umsetzung mit 'read' besser?

Perl?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Re: String bei nur einem Zeichen trennen. awk oder sed?

Beitrag von debdog » 28.08.2010 15:19:33

for the records:

Die bash selbst hat ein paar Funktionen zur Parametersubstitution:

Code: Alles auswählen

string="aaa: bbb:ccc"
teil1=${string%%:*}
teil2=${string#*:}
echo $teil1
echo $teil2
Mehr dazu z.B. unter http://www.faqs.org/docs/abs/HTML/param ... ution.html
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Benutzeravatar
duese
Beiträge: 651
Registriert: 12.07.2006 15:27:20
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: String bei nur einem Zeichen trennen. awk oder sed?

Beitrag von duese » 28.08.2010 23:54:47

Danke für die Tipps+Links! Hat geklappt!

Gruß,
Thomas

Antworten