CSV

CSV (Comma-Separated Values) is het eenvoudigste formaat voor tabeldata: één regel per rij, waarden gescheiden door komma's. Vrijwel elk programma kan het lezen en schrijven — van spreadsheets tot databases tot een simpel shellscript.

Voorbeeld

naam,ip,rol
web01,192.168.1.10,webserver
db01,192.168.1.20,database

De eerste regel is meestal (maar niet gegarandeerd) een kopregel met kolomnamen.

De valkuilen

CSV is nooit formeel gestandaardiseerd, dus de randgevallen bijten:

  • Scheidingsteken — Nederlandse Excel-versies gebruiken een puntkomma, omdat de komma hier het decimaalteken is
  • Quoting — waarden mét komma's moeten tussen aanhalingstekens: "Jansen, Piet", en aanhalingstekens daarbinnen worden verdubbeld
  • Geen datatypes — alles is tekst; 0612345678 verliest zonder pardon zijn voorloopnul in een spreadsheet
  • Tekencodering — een bestand in Latin-1 openen als UTF-8 levert wartaal bij accenten

Op de commandoregel

column -s, -t < servers.csv        # als nette tabel tonen
cut -d, -f2 servers.csv            # tweede kolom pakken
awk -F, '$3=="database"' servers.csv

Voor CSV met gequote komma's zijn deze tools te naïef; dan is een echte parser (Python csv, mlr) veiliger.

Zie ook

  • json — voor geneste in plaats van tabulaire data
  • ascii — coderingsproblemen bij uitwisseling
  • cut en awk — kolommen verwerken
  • column — CSV leesbaar weergeven
ontwikkelingdata