Listing 4
$ mlr --csv --rs lf --opprint rename Name,Familienname,Beitrag,Jahresbeitrag csv3.txt $ mlr --csv --rs lf reorder -f Beitrag,Vorname,Name csv3.txt $ mlr --csv --rs lf sort -f Name,Vorname csv3.txt csv4.txt $ mlr --csv --rs lf --opprint uniq -c -g Name,Vorname,Beitrag csv3.txt csv4.txt
Zum Umstellen der Spaltenposition brauchen Sie das Kommando reorder. Geben Sie alle vorhandenen Spaltennamen an (Listing 4, Zeile 2), kommt die Ausgabe in der gewünschten Reihenfolge zustande. Andernfalls stellt Miller die Änderungen an das Ende oder den Anfang. Zwei entsprechende Beispiele finden Sie in Abbildung 9.

Abbildung 9: Bei Bedarf ändern Sie die Namen der Spalten und deren Reihenfolge. Im Beispiel sorgt die Option »–opprint« für mehr Übersicht.
Mittels der Kommandos sort und uniq nehmen Sie Einfluss auf die Reihung der Datensätze beziehungsweise Zeilen. Während Sie mit sort ähnlich group-by gleichwertige Zeilen in der Reihung hintereinander ausgeben, fasst uniq diese zusammen (Listing 4, Zeile 3 und 4).
Für das Anwendungsbeispiel mit uniq kommt auch dessen Option -c zum Einsatz. Sie erhalten damit eine Zählung der Häufigkeit von identischen Zeilen. Abbildung 10 zeigt die entsprechenden Beispiele.

Abbildung 10: Benötigen Sie die Datensätze in einer bestimmten Reihenfolge und ohne Dubletten, greifen Sie auf die Miller-Kommandos »sort« und »uniq« zurück.
Miller rechnet
Für Berechnungen und statistische Auswertungen bietet Miller unter anderem die Kommandos stats1, step und top an. Mittels stats1 nehmen Sie zusammenfassende statistische Auswertungen vor. Die Befehle in Listing 5 ermitteln die Summe, die Anzahl, den Durchschnitt, das Minimum und das Maximum aus der Spalte Beitrag; in Abbildung 11 sehen Sie die Codezeilen mit den Ergebnissen.
Listing 5
$ mlr --csv --rs lf stats1 -a sum -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf stats1 -a count -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf stats1 -a mean -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf stats1 -a min -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf stats1 -a max -f Beitrag csv3.txt csv4.txt
Mittels step erhalten Sie zu jeder Zeile Auswertungen. Die jeweils aufgelaufene Summe je Zeile ermittelt rsum. Den Unterschied zwischen zwei aufeinanderfolgenden Zeilen erhalten Sie durch delta, das Verhältnis mittels ratio.
Eine laufende Zählung der ausgegebenen Zeilen bewirkt counter. Die Differenz zwischen der ersten und n-ten Zeile gibt from-first aus. Beispiele für solche Kommandos finden Sie in Listing 6, Abbildung 12 zeigt wie Miller diese abarbeitet.
Listing 6
$ mlr --csv --rs lf --opprint step -a rsum -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf --opprint step -a delta -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf --opprint step -a ratio -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf --opprint step -a counter -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf --opprint step -a from-first -f Beitrag csv3.txt csv4.txt
Mithilfe von top ermitteln Sie den höchsten numerischen Wert einer Spalte. Um dabei die vollständige Zeile auszugeben, verwenden Sie die Option -a. Mit --min erhalten Sie stattdessen das Minimum. Möchten Sie mehrere Zeilen nach Wert geordnet ausgeben, verwenden Sie -n Zeilen (Listing 7), den Ablauf entnehmen Sie Abbildung 13.

Abbildung 13: Ausgabe des höchsten oder kleinsten Wertes einer Spalte mittels des entsprechenden Operators.
Listing 7
$ mlr --csv --rs lf top -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf top -a -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf top --min -f Beitrag csv3.txt csv4.txt $ mlr --csv --rs lf --opprint top -n 3 -a -f Beitrag csv3.txt csv4.txt
Anschauliche Daten
Numerische Werte veranschaulichen Sie mit dem Kommando bar. Durch die Optionen --lo (Beginn Anzeige), --hi (Maximalwert) und -w (Stellenanzahl Anzeige) bringen Sie das Ergebnis passend auf den Bildschirm oder das Blatt (Listing 8). Abbildung 14 zeigt das Ergebnis der Begrenzungen des zweiten Beispiels (“Überlaufzeichen”).
Listing 8
$ mlr --csv --rs lf --opprint bar --lo 0 --hi 100 -f Beitrag csv3.txt $ mlr --csv --rs lf --opprint bar -c "*" --lo 20 --hi 50 -w 50 -f Beitrag csv3.txt csv4.txt
Je nach Verwendung macht hier unter Umständen Probleme, dass Sie eine Spalte entweder mit bar als “Grafik” oder mit ihrem numerischen Wert ausgeben lassen können, nicht aber beides. Abhilfe schafft hier die doppelte Verwendung der Daten mit verschiedenen Namen für die Spalten.








