Introduction à la programmation Bash
Alex Scriven
Data Scientist
Ce cours couvre :
D'abord, pourquoi Bash ?
Bash signifie « Bourne Again Shell » (un jeu de mots)
Développé dans les années 80, mais encore très populaire. Shell par défaut sur plusieurs systèmes Unix et sur Mac
Unix fait tourner Internet ! (exécution de modèles de ML, pipelines de données)
Alors, pourquoi le script Bash ?
On s'attend à ce que vous ayez quelques bases pour ce cours.
cat, grep, sed, etc.Si vous êtes rouillé, pas d'inquiétude : on révise tout de suite !
Quelques commandes importantes du shell :
(e)grep filtre l'entrée à l'aide de motifs regexcat concatène le contenu des fichiers, ligne par lignetail \ head affichent seulement les -n dernières (un indicateur) ligneswc compte les mots ou les lignes (avec -w ou -l)sed fait des remplacements de chaînes selon un motifLes « regex », ou expressions régulières, sont essentielles pour le scripting Bash.
Vous devrez souvent filtrer des fichiers, des données dans des fichiers, faire correspondre des arguments, etc. Cela vaut la peine de réviser.
Pour tester vos regex, vous pouvez utiliser des sites pratiques comme regex101.com
Révisons quelques commandes du shell avec un exemple.
Considérez un fichier texte fruits.txt avec 3 lignes :
banana
apple
carrot
Si on exécute grep 'a' fruits.txt, on obtient :
banana
apple
carrot
Mais si on exécute grep 'p' fruits.txt, on obtient :
apple
Rappelez-vous que les crochets définissent un ensemble, p. ex. [eyfv]. Avec ^, c'est l'inverse (exclut ces lettres/chiffres).
Ainsi, grep '[pc]' fruits.txt renverrait :
apple
carrot
Vous avez sans doute déjà utilisé les « pipes » dans le terminal. Si le fichier contenait beaucoup de fruits, on pourrait faire sort | uniq -c
wc -l et headcat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Introduction à la programmation Bash