Parsing einer CSV-Datei mit gawk
Wie parst du eine CSV-Datei mit gawk? Einfach @ setzFS=","
ist nicht genug, da ein in Anführungszeichen gesetztes Feld mit einem Komma als mehrere Felder behandelt wird.
Beispiel mitFS=","
was nicht funktioniert:
Dateiinhalt:
one,two,"three, four",five
"six, seven",eight,"nine"
gawk script:
BEGIN { FS="," }
{
for (i=1; i<=NF; i++) printf "field #%d: %s\n", i, $(i)
printf "---------------------------\n"
}
Bad Ausgabe:
field #1: one
field #2: two
field #3: "three
field #4: four"
field #5: five
---------------------------
field #1: "six
field #2: seven"
field #3: eight
field #4: "nine"
---------------------------
Gewünschte Ausgabe:
field #1: one
field #2: two
field #3: "three, four"
field #4: five
---------------------------
field #1: "six, seven"
field #2: eight
field #3: "nine"
---------------------------