Hoe kan ik veel opdrachten in één enkele loop uitvoeren?
Bestandsnamen afdrukken is handig om te debuggen, maar het echte doel van loops is om iets met meerdere bestanden te doen. Deze loop print de tweede regel van elk databestand:
for file in seasonal/*.csv; do head -n 2 $file | tail -n 1; done
Hij heeft dezelfde structuur als de andere loops die je al hebt gezien: het enige verschil is dat de body een pipeline van twee opdrachten is in plaats van één enkele opdracht.
Deze oefening maakt deel uit van de cursus
Introductie tot de shell
Oefeninstructies
Schrijf een loop die het laatste item van juli 2017 (2017-07) in elk seasonal-bestand print. De uitvoer moet lijken op:
grep 2017-07 seasonal/winter.csv | tail -n 1
maar dan voor elk seasonal-bestand apart. Gebruik file als naam van de loopvariabele, en vergeet niet te loopen over de lijst met bestanden seasonal/*.csv (in plaats van 'seasonal/winter.csv' zoals in het voorbeeld).
Praktische interactieve oefening
Zet theorie om in actie met een van onze interactieve oefeningen.
Begin met trainen