CommencezCommencez gratuitement

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

Voir le cours

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