Mit sed Spalteninhalt ändern

Z

zst

Foren As
Hallo allerseits,

leider gelingt es mir nicht, mit sed eine Spalte einer Datei zu erweitern.
Jede Zeile hat das folgende Format:
Code:
1234567,Markt GmbH,01234,Berlin,Alter Hafen 5,Frau Vera Mustermann,4,0,0,0,
Und nun will ich - wegen den Postleitzahlen mit führenden Nullen - vor die PLZ ein D- haben, also D-01234.

Wie geht das mit sed - wer hat eine Idee für mich?

Vorab schon vielen Dank!!!
Gruss zst
 
das sollte funktionieren, solange die Ziffernfolge der PLZ nicht in der ersten Zeile enthalten ist, da dann die "matcht" und ersetzt wird.

Code:
#!/bin/bash

while read line
do
echo $line | sed -e  s/` echo $line | awk -F, '{print $3}'`/D-\&/

done < $input_file
 
Setzt vor alle PLZ mit führender 0 ein D-0:
Code:
awk -F "," '{sub("^0", "D-0", $3);print}' INPUT > OUTPUT
Setzt vor alle PLZ ein D-0:
Code:
awk -F "," '{sub("^", "D-", $3);print} INPUT > OUTPUT
 
Hallo Ihr Schnellantworter,

vielen Dank für Eure Lösungsvorschläge.

@NoXqs: auch wenn eine 01234 PLZ in der ersten Zeile ist, geht es. Besten Dank !!!

@smg: auch Deine Lösung funktioniert, vielen Dank!, Nur schade, dass hier alle Kommas entfernt werden.

Prima, dass Eure Hilfe so schnell kam !!!
Gruss zst
 
Sorry, ich meinte in der ersten Spalte.
Aber schön, wenn es trotzdem geht.
 
Die gefragte sed-Lösung:
Code:
$ echo "1234567,Markt GmbH,01234,Berlin,Alter Hafen 5,Frau Vera Mustermann,4,0,0,0,"|sed -e 's/^\([^,]*[,][^,]*[,]\)\([[:digit:]]\+\)\(.*\)$/\1D-\2\3/g'
1234567,Markt GmbH,D-01234,Berlin,Alter Hafen 5,Frau Vera Mustermann,4,0,0,0,

Gruß Wolfgang
 
Hallo Wolfgang,

auch Dir DANKE für Deine perfekte Lösung.
Ich werde mich wohl mal genauer mit sed beschäftigen müssen, sieht einfach toll aus ... :-)) ... und funktioniert !!!
Gruss zst
 

Ähnliche Themen

CSV Datei mit sed manipulieren/optimieren/ergänzen

sed im script per crontab

SuSE 10.0 & Option G3 UMTS Karte

Zurück
Oben