Comment exécuter plusieurs commandes dans une seule boucle ?
L’affichage de noms de fichiers est utile pour le débogage, mais l’objectif réel des boucles est de manipuler plusieurs fichiers. Cette boucle affiche la deuxième ligne de chaque fichier de données :
for file in seasonal/*.csv; do head -n 2 $file | tail -n 1; done
Elle a la même structure que les autres boucles que vous avez déjà vues : la seule différence, c’est que son corps est un pipeline de deux commandes au lieu d’une seule commande.
Cet exercice fait partie du cours
<cours>Introduction au shell</cours>Instructions de l’exercice
Ecrivez une boucle qui affiche la dernière entrée de juillet 2017 (2017-07) dans chaque fichier saisonnier. Elle devrait produire un résultat similaire à :
grep 2017-07 seasonal/winter.csv | tail -n 1
mais pour chaque fichier saisonnier séparément. Veuillez utiliser file comme nom de la variable de boucle et n’oubliez pas de parcourir la liste des fichiers seasonal/*.csv (au lieu de « seasonal/winter.csv » comme dans l’exemple).
Exercice interactif pratique
Transformez la théorie en action avec l’un de nos exercices interactifs
Commencer l’exercice