Felder in einer Datei via VIM befüllen?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Nopsi, 10.05.2007.

  1. Nopsi

    Nopsi Grünschnabel

    Dabei seit:
    10.05.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Ich habe eine Datei, paar tausend Zeilen groß, welche wie folgt aussieht:

    Code:
    18|2007|V|0|Nachname|Vorname||Herrn||||GEBDATUM||XXX|121||15|Sd|||4|||||18|2007|V|1|16.01.2007|02|XX|XX||Herrn||||||XX|35||XX|XX|||4||||
    
    Ich möchte nun diese Datei global editieren. ich habe die datei mit VIM offen und möchte nun die felder nr. 15-30 (beispielhaft jetzt) mit den Werten XXXYYYZZZ füllen.

    Wie geht das nochmal im VIM / VI ?

    mir fällt der befehl nicht mehr ein :(

    Ich muss ja definieren was der Feldtrenner ist (| = Pipe) und dann sagen: Fülle die Felder 15 bis 30 mit dem wert XXXYYYZZZ
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 10.05.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Befehlsmodus.
    Dort mit replace auf ganze Datei.
    Code:
    :1,$s/REGEXP/REPLACE/g
    Der Befehl ist aber identisch mit dem sed- Befehl, deshalb kannst du gleich sed nehmen.
    Das dürfte auch schneller gehen, da die Datei nicht erst komplett geladen werden muss.

    Mit sed sähe das so ähnlich aus, habe hier nur 5 Felder ersetzt.
    Code:
    $ sed -e 's/\(\([^|]*|\)\{15\}\)\(\([^|]*|\)\{5\}\)\(.*\)$/\1neu1|neu2|neu3|neu4|neu5|\5/g' test
    das|ist|ein|test|feld|mit|einigen|feldern|||||13|14|15|neu1|neu2|neu3|neu4|neu5|21|22|23|24|25|26|27|28|29|30|31|32|33
    1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|neu1|neu2|neu3|neu4|neu5|21|22|23|24|25|26|27|28|29|30|31|32|33
    
    Musst du dir halt auf deine 15 Felder anpassen.

    Aber mit perl oder awk geht das leichter, da diese Spaltenorientiert arbeiten können.

    Gruß Wolfgang
     
  4. Nopsi

    Nopsi Grünschnabel

    Dabei seit:
    10.05.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Da ich auf einem Win PC arbeiten muss steht mir leider kein Unix/Linux zur verfügung hier im geschäft.

    d.h. ich habe nur VIM und kann daher kein SED verwenden...

    Tip wie der Befehl im VIM aussehen müsste?
     
  5. #4 Wolfgang, 14.05.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Sorry, aber wir sind hier in einem UNIX-BOARD.

    Aber du hast das gelesen?
    Ob das deine Windowsversion auch so kann, kann ich nicht sagen.
    Das selbst zu testen, sei dir überlassen. ;)
    Dazu befrage besser eine geeignetere Windows-Community.

    Gruß Wolfgang
    PS es gibt auch sed für Windows
     
  6. Nopsi

    Nopsi Grünschnabel

    Dabei seit:
    10.05.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Das dies ein Unix Board ist, ist mir bekannt :D Bei einem Windows Board wird einem nicht geholfen....

    Code:
    :1,$s/\(\([^|]*|\)\{31\}\)\(\([^|]*|\)\{17\}\)\(.*\)$/\1Nachname|Vorname|Firmenname|Anrede|Rechtsform|Titel|co|GebDatum|GebName|Straße|HausNummer|StrZusatz|PLZ|Ort|Postfach|Ortszusatz|LKZ|TelPriv|TelGesch|TelMob|SterbeDatum\5/g
    
    Hat perfekt funktioniert, danke dir Wolfgang.
     
Thema:

Felder in einer Datei via VIM befüllen?

Die Seite wird geladen...

Felder in einer Datei via VIM befüllen? - Ähnliche Themen

  1. Sed: Bestimmtes Feld einer "Zeile mit mehreren Feldern" ergänzen

    Sed: Bestimmtes Feld einer "Zeile mit mehreren Feldern" ergänzen: Hallo, in einer Datenbank (einfache Textdatei) wollte ich in einer bestimmten Zeile ein bestimmtes Feld mit Informationen ergänzen. Geläufig...
  2. Werte einer Datei in Feldern einer anderen suchen

    Werte einer Datei in Feldern einer anderen suchen: Hi, ich möchte in einer Datei a nach Werten aus einer anderen Datei b suchen. Datei a besteht aus mehreren Spalten pro Zeile. Datei b besteht...
  3. Sortieren nach Spalten statt Feldern

    Sortieren nach Spalten statt Feldern: Guten Morgen allerseits! ich hätte da ein Skript-Defizit und hoffe, dass mir da jmd. weiter helfen kann... Den sort habe ich bisher nur...
  4. [Perl] Anzahl der Felder in mehrdimensionalen Array

    [Perl] Anzahl der Felder in mehrdimensionalen Array: Hallo wie bekomme ich die Anzahl der felder in einem mehrdimensionalen Array? Ich moechte z.B. die Anzahl von feld2 (3) bekommen? :help:...
  5. Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen

    Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen: Hallo, ich habe ein Verzeichnis, darin enthalten sind mehrere Dateien. Nun möchte ich alle Dateien (Parameter $1) gegen eine konstante Datei...