Comment exécuter plusieurs commandes dans une seule boucle?
Afficher les noms de fichiers est utile pour le débogage, mais l'objectif réel des boucles est d'agir sur 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 est que son corps est un enchaînement (pipeline) de deux commandes plutôt qu'une seule.
Cette activité fait partie du cours
Introduction à l'invite de commande
Instructions de l’exercice
Écrivez une boucle qui affiche la dernière entrée de juillet 2017 (2017-07) dans chaque fichier seasonal. Elle devrait produire un résultat similaire à :
grep 2017-07 seasonal/winter.csv | tail -n 1
mais pour chaque fichier seasonal séparément. Veuillez utiliser file comme nom de variable de boucle, et n'oubliez pas d'itérer sur la liste de fichiers seasonal/*.csv (plutôt que « seasonal/winter.csv » comme dans l'exemple).
Exercice interactif pratique
Passez de la théorie à l’action grâce à l’un de nos exercices interactifs
Commencer l’exercice