Wie kann ich mehrere Befehle in einer einzigen Schleife ausführen?
Das Drucken von Dateinamen ist beim Debuggen echt praktisch. Aber eigentlich sind Schleifen dafür da, um Sachen mit mehreren Dateien zu machen. Diese Schleife gibt die zweite Zeile jeder Datendatei aus:
for file in seasonal/*.csv; do head -n 2 $file | tail -n 1; done
Es hat die gleiche Struktur wie die anderen Schleifen, die du schon kennst: Der einzige Unterschied ist, dass sein Körper aus zwei Befehlen besteht statt aus einem einzigen.
Diese Übung ist Teil des Kurses
Einführung in Shell
Anleitung zur Übung
Schreib eine Schleife, die den letzten Eintrag aus Juli 2017 (2017-07) in jeder Saison-Datei ausgibt. Das Ergebnis sollte ungefähr so aussehen:
grep 2017-07 seasonal/winter.csv | tail -n 1
aber für jede saisonale Datei separat. Benutz bitte „ file ” als Namen für die Schleifenvariable und denk dran, die Liste der Dateien „ seasonal/*.csv ” (statt „seasonal/winter.csv” wie im Beispiel) zu durchlaufen.
Interaktive Übung
In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.
Übung starten