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"
---------------------------

Antworten auf die Frage(18)

Ihre Antwort auf die Frage