Anzeige:
Ergebnis 1 bis 5 von 5

Thema: awk: zwischen Zeile 802 und 968 nach dem 38 Komma, eine 1 zu 0 machen

  1. #1
    Registrierter Benutzer
    Registriert seit
    21.09.2003
    Ort
    nähe Münster
    Beiträge
    76

    awk: zwischen Zeile 802 und 968 nach dem 38 Komma, eine 1 zu 0 machen

    ..........
    Geändert von Gutschy (01-11-2012 um 08:50 Uhr)
    hold on.

  2. #2
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    180
    Hallo Gutschy,

    Unter den nachstehend genannten Randbedingungen sollte das awk-Skript der Grundstock einer Lösung sein:
    1. Das Feldtrennzeichen ist das Komma --->daher Option -F","
    2. Zwischen Zeilen 802 und 968 jeweils EINSCHLIESSLICH; ansonsten ">" anstatt ">=" usw.
    3. Das 38. Feld besteht entweder nur aus einer "0" oder einer "1". Ist keine "1" vorhanden, dann Feld 38 so belassen, ansonsten seinen Wert unverändert lassen.
    4. Änderung wirkt auf ALLE Zeilen im angegebenen Bereich.

    awk -F"," \
    '{
    if ((NR >= 802) && (NR <= 968)) {
    if ($38 == "1") {
    Feld38 = "0";

    # Zusammenfassen der Felder 1 - 37 für Ausdruck
    str_Teil1 = $1;
    for(i=2;i<=37;i++) str_Teil1 = sprintf("%s,%s",str_Teil1,$i);

    # Zusammenfassen der Felder ab Feld 38 aufwärts für Ausdruck
    str_Teil2 = $39;
    for(i=40;i<=NF;i++) str_Teil2 = sprintf("%s,%s",str_Teil2,$i);

    # Ausdruck der geänderten Zeile:
    printf("%s,%s,%s\n",str_Teil1,Feld38,str_Teil2);
    } else
    printf("%s\n",$0);
    } else
    printf("%s\n",$0);
    }
    }' < eingabe-datei > ausgabe-datei


    HINWEIS:
    Führende Leerzeichen zum Einrücken zwecks besserer Lesbarkeit wurden vom MRUNIX-System entfernt.

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.09.2003
    Ort
    nähe Münster
    Beiträge
    76

    Smile

    ..........
    Geändert von Gutschy (01-11-2012 um 08:50 Uhr)
    hold on.

  4. #4
    Registrierter Benutzer
    Registriert seit
    21.09.2003
    Ort
    nähe Münster
    Beiträge
    76
    ..........
    Geändert von Gutschy (01-11-2012 um 08:51 Uhr)
    hold on.

  5. #5
    Registrierter Benutzer
    Registriert seit
    21.09.2003
    Ort
    nähe Münster
    Beiträge
    76
    ..........
    Geändert von Gutschy (01-11-2012 um 08:51 Uhr)
    hold on.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •