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.

Abbildung 11: Möchten Sie einfache Berechnungen vornehmen, lässt sich Miller auch dazu einspannen.

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.

Abbildung 12: Zeilenweise Berechnungen erledigen Sie mit den entsprechenden Operatoren.

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

Abbildung 14: Mit dem Befehl bar erzeugen Sie einfache Balkendiagramme aus den Daten.

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.

Ein Beispiel dazu zeigt Listing 9, das die Belegung der Ordner im Home-Verzeichnis ermittelt und zweimal in die Ausgabedatei belegung.txt ausgibt, einmal in die Spalte Belegung(MB) und zusätzlich in die Spalte Wert. Dabei kommt zusätzlich ein abweichendes Trennzeichen für die Felder zum Einsatz. Anschließend wertet das Skript die Ergebnisdatei mittels Miller aus.

Ein Beispiel für eine entsprechende Ausgabedatei zeigt Listing 10, in Abbildung 15 sehen Sie das Resultat der Auswertung durch Miller.

Listing 9

#! /bin/sh
# Plattenbelegung ermitteln ...
echo "VZ-Name:Belegung(MB):Wert" > /home/tmp/belegung.txt
cd /home
for i in $(ls -1 /home); do
  # ... und als CSV speichern
  k=$(du -shm $i | cut -f1)
  echo $i:$k:$k >> /home/tmp/belegung.txt
done
# Ausgabe formatieren
mlr --csv --ifs : --rs lf --opprint \
bar -c "*" --lo 0 --hi 500 -w 50 \
-f Wert /home/tmp/belegung.txt

Listing 10

VZ-Name:Belegung(MB):Wert
jefe:108:108
tmp:1:1
Abbildung 15: Ein Beispiel aus der Praxis zeigt die Fähigkeiten von Miller anhand der Berechnung des verbleibenden Platzes auf den Festplatten.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Sauber verzahnt
    Verbinden, trennen, umformatieren: Unter Linux gibt es zahlreiche kleine Helfer, die die Arbeit mit Textdateien perfekt beherrschen – und die dazu noch perfekt zusammenarbeiten.
  • Am Fließband
    Mit Sed editieren Sie Textdaten ohne interaktive Benutzeroberfläche – auch in Pipes oder der Eingabeumlenkung. In einer einzigen Zeile lassen sich umfangreiche Editierkommandos absetzen.
  • Durchblick im Quellcode dank Syntax-Highlighting
    Quellcode liest sich oft schwer. Eine Syntaxhervorhebung macht klar, worauf es ankommt.
  • Mehr Komfort
    Von einfachen Abfragen bis hin zu komplexen Menüs: Mit dem Toolkit Dialog bauen Sie eine grafische Oberfläche für Shell-Skripte, die oft nicht mehr als eine zusätzliche Zeile brauchen.
  • LaTeX mit Daten aus externen Quellen anreichern
    Ob Serienbrief oder Teilnehmerliste – mit dem richtigen Adapter befüllen Sie LaTeX-Dokumente problemlos mit den Feldinhalten einer Datenbank und erstellen so Druckerzeugnisse in perfekter Qualität.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...