-
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.
-
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.
-
..........
Geändert von Gutschy (01-11-2012 um 08:50 Uhr)
hold on.
-
..........
Geändert von Gutschy (01-11-2012 um 08:51 Uhr)
hold on.
-
..........
Geändert von Gutschy (01-11-2012 um 08:51 Uhr)
hold on.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen