Mit sed Spalteninhalt ändern

Diskutiere Mit sed Spalteninhalt ändern im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo allerseits, leider gelingt es mir nicht, mit sed eine Spalte einer Datei zu erweitern. Jede Zeile hat das folgende Format:...

  1. zst

    zst Foren As

    Dabei seit:
    06.09.2006
    Beiträge:
    95
    Zustimmungen:
    0
    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
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. NoXqs

    NoXqs Routinier

    Dabei seit:
    07.05.2007
    Beiträge:
    420
    Zustimmungen:
    0
    Ort:
    Bremen
    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
    
    
     
  4. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    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
     
  5. zst

    zst Foren As

    Dabei seit:
    06.09.2006
    Beiträge:
    95
    Zustimmungen:
    0
    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
     
  6. NoXqs

    NoXqs Routinier

    Dabei seit:
    07.05.2007
    Beiträge:
    420
    Zustimmungen:
    0
    Ort:
    Bremen
    Sorry, ich meinte in der ersten Spalte.
    Aber schön, wenn es trotzdem geht.
     
  7. Anzeige

    Vielleicht findest du in dieser Kategorie etwas passendes.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 Wolfgang, 26.06.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    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
     
  9. zst

    zst Foren As

    Dabei seit:
    06.09.2006
    Beiträge:
    95
    Zustimmungen:
    0
    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
     
Thema:

Mit sed Spalteninhalt ändern

Die Seite wird geladen...

Mit sed Spalteninhalt ändern - Ähnliche Themen

  1. Spalteninhalte dividieren

    Spalteninhalte dividieren: Hallo, ich möchte gerne die Elemente einer Spalte durch die Elemente einer zweiten Spalte dividieren. Dazu folgendes Beispiel mit dem Datenfile...
  2. Puppy linux helligkeit ändern.

    Puppy linux helligkeit ändern.: Wie ändere ich bei Puppy linux meine helligkeit ?
  3. User sollen Dateien speichern und ändern, aber nicht neu anlegen dürfen

    User sollen Dateien speichern und ändern, aber nicht neu anlegen dürfen: Hallo liebe Helfer, welche Einstellungen muss ich in der smb.conf bzw. unter Linux vornehmen, damit User vorhandene Dateien öffnen und speichern...
  4. Home Verzeichnis ändern

    Home Verzeichnis ändern: Hallo Wollte nicht, dass mein Sohn (16) in die veschränkte WIN Welt hinein wächst und habe für Ihn Linux Mint auf seinem LAPTOP installiert. Er...
  5. Mozilla-Studie: Web schafft Chancen in Entwicklungsländern

    Mozilla-Studie: Web schafft Chancen in Entwicklungsländern: Mozilla hat gemeinsam mit der GSMA eine Studie erstellt, die die Möglichkeiten des Webs in Entwicklungsländern aufzeigt. Eine wachsende Zahl von...