csv-Tabellenkalkulation im Terminal mit bash und (g)awk


Querverweise

Appetizer

2 Aufbereitungsvarianten derselben csv-Datei zu Darstellung oder Editierung (hier mit vim)



Warum CSV nicht nur im Terminal die bessere Tabellenkalkulation ist

Die Anzahl Excel--Dateien, aufgrund derer Unternehmen jeglicher Größenordnung täglich wichtigste Entscheidungen treffen, dürfte bei mehreren 100 Millionen liegen. Damit hängen große Teile der Weltwirtschaft an einem System, welches gegen die wichtigsten Paradigmen der IT verstößt Mithin sind Tabellenkalkulationen in Unternehmen also nicht nur noch langsamer zu bedienen als bereits zu starten, sondern stellen als Systembruch durchgehender Bearbeitungsketten wie Verletzung jeglicher Grundregeln der Informatik vorsichtig ausgedrückt nicht gerade "the sharpest tool in the shed" dar.

Möchte man wesentliche Aspekte des vorigen in Unternehmen nicht ohnehin als absolute No-No einstufen, ergeben sich folgende "Vorteile" reiner CSV-Verarbeitung im Terminal:

csv-Verarbeitung für den Desktop

Diesem Zweck dient die folgende Sammlung an bash-(g)awk-Scripts, welche, jeweils auf der Kommandozeile mit Optionen aufgerufen, CSV-Datein für typische Fragestellungen verarbeiten.

Die Scripts sind

Anwendungsbeispiel

Betrachten wir dazu 4 Tabellen eines Warensortiments, welche via Artikelnummer oder Artikelbeschreibung und Markt verknüpft, gefiltert, sortiert, kalkuliert und visuell aufbereitet werden sollen

(Trennzeichen: ';')

mit alternativ



mycsvmerge -i 2.csv:1:2 -o 1.csv:1:1
mycsvview -nl -s1 1_merged.csv
#-------------------------------------------------------------------------------
# Quelle
#   Datei 2
#   Key: Spalte 1 (Artikelnummer)
#   Value: Spalte 2 (Artikelbeschreibung)
# Ziel
#   Datei 1
#   Key: Spalte 1 (Artikelnummer)
#   Zielspalte: nach Spalte 1 einfuegen
#-------------------------------------------------------------------------------




mycsvmerge -i 4.csv:1u2:3 -o 1_merged.csv:2u3:hinten
mycsvview -nl -s1 1_merged.csv
#-------------------------------------------------------------------------------
# Quelle
#   Datei 4
#   Key: Spalte 1 und Spalte 2 (Artikelbeschreibung und Markt)
#   Value: Spalte 3 (Verkaufspreis)
# Ziel
#   veraenderte Datei 1
#   Key: Spalte 2 und 3 (Artikelbeschreibung und Markt)
#   Zielspalte: hinten anfuegen
#-------------------------------------------------------------------------------




mycsvmerge -i 3.csv:1:2 -o 1_merged.csv:1:2
mycsvview -nl -s1 1_merged.csv
#-------------------------------------------------------------------------------
# Quelle
#   Datei 3
#   Key: Spalte 1 (Artikelnummer)
#   Value: Spalte 2 (Zubehoer)
# Ziel
#   veraenderte Datei 1
#   Key: Spalte 1 (Artikelnummer)
#   Zielspalte: nach Spalte 2 einfuegen
#-------------------------------------------------------------------------------




mycsvfilter -f '3:.*teil.*' 1_merged.csv > 1_filtered.csv
mycsvview -nl -s1 1_filtered.csv




mycsvsort -k 1:4 1_filtered.csv > 1_sorted.csv
mycsvview -nl -s1 1_sorted.csv




mycsvcalc -c 5:1:1000 -t "Bestandssumme" 1_sorted.csv


Script-Suite

... und hier die Werkzeuge ...

mycsvfilter

mycsvsort

mycsvcalc

mycsvmerge

mycsvview

mycsvedit


Impressum und Datenschutzerklärung