Feldbezeichnungen in der ersten Zeile sind optional. Eigentlich ist es ganz leicht. Sagen wir, Du willst die 2. und 3. Spalte von vieren zusammenfassen (ich gehe mal von Semikolon als Feldtrenner aus):
BEGIN { FS=";" }
{ print $1 ";" $2+$3 ";" $4 }
Bei vielen Feldern ist das hier aber eleganter:
BEGIN { FS=";" }
{
for (i = 1; i <= NF-1; i++) # für (fast) alle Felder der aktuellen folgendes tun Zeile:
{
if (i < 2)
printf("%s", $i); # alles vor Feld 2
else if (i > 2)
printf("%s", $(i+1)); # alles hinter Feld 3
else
printf("%s%s", $i, $(i+1)); # Feld 2 und 3 zusammenfassen
if (i < NF-1) # noch nicht das letzte Feld?
printf(";"); # dann Feldtrenner nicht vergessen
}
printf("\r\n"); # Ende der Zeile
}
|