Bash:
Arbeiten mit CSV

Wie geht das:

Lesen einer CSV-Datei Zeile für Zeile

while IFS=, read -r spalte1 spalte2 spalte3
do
  echo "Spalte 1: $spalte1, Spalte 2: $spalte2, Spalte 3: $spalte3"
done < beispiel.csv

Beispielausgabe:

Spalte 1: id, Spalte 2: name, Spalte 3: email
...

Filtern von CSV-Zeilen basierend auf einer Bedingung

Mit awk können Sie einfach Zeilen filtern. Um zum Beispiel Zeilen zu finden, in denen die zweite Spalte “Alice” entspricht:

awk -F, '$2 == "Alice" { print $0 }' beispiel.csv

Ändern eines Spaltenwerts

Um die zweite Spalte in Großbuchstaben zu ändern:

awk -F, 'BEGIN {OFS=",";} { $2 = toupper($2); print $0; }' beispiel.csv

Sortieren einer CSV-Datei basierend auf einer Spalte

Sie können eine CSV-Datei basierend auf, sagen wir, der dritten Spalte (numerisch) sortieren:

sort -t, -k3,3n beispiel.csv

Verwenden von csvkit für komplexere Aufgaben

csvkit ist eine Sammlung von Befehlszeilen-Tools zum Konvertieren und Arbeiten mit CSV. Es kann über pip installiert werden.

Zum Konvertieren einer JSON-Datei in CSV:

in2csv data.json > data.csv

Um eine CSV-Datei mit SQL abzufragen:

csvsql --query "SELECT name FROM sample WHERE id = 10" beispiel.csv

Hinweis: Die Installation von csvkit benötigt Python und kann über pip install csvkit erfolgen.