Introduction au scripting Bash
Alex Scriven
Data Scientist
Ce cours couvre :
Commençons par : pourquoi Bash ?
Bash signifie « Bourne Again Shell » (un jeu de mots)
Développé dans les années 80, mais très populaire aujourd'hui. Par défaut sur de nombreux systèmes Unix et sur Mac
Unix fait tourner l'internet ! (ML Models, Data Pipelines)
Alors, pourquoi le scripting Bash ?
Nous supposons quelques connaissances de base pour ce cours.
cat, grep, sed, etc.Si vous êtes un peu rouillé, pas d'inquiétude : nous réviserons cela maintenant !
Quelques commandes shell importantes :
(e)grep filtre l'entrée avec des regexcat concatène le contenu des fichiers ligne par lignetail \ head renvoient seulement les -n dernières/premières lignes (un indicateur)wc compte mots ou lignes (avec -w -l)sed effectue des remplacements selon des motifsLes « 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 utiles comme regex101.com
Révisons quelques commandes shell avec un exemple.
Considérez un fichier texte fruits.txt avec 3 lignes :
banana
apple
carrot
Si nous exécutons grep 'a' fruits.txt, nous obtiendrons :
banana
apple
carrot
Mais si nous exécutons grep 'p' fruits.txt, nous obtiendrons :
apple
Rappelez-vous que les crochets définissent un ensemble, par exemple [eyfv]. Avec ^, c'est l'inverse (exclut ces lettres/chiffres).
Ainsi, en lançant grep '[pc]' fruits.txt, nous obtiendrions :
apple
carrot
Vous avez sans doute déjà utilisé des « pipes » dans le terminal. Si notre fichier contenait beaucoup de fruits, on pourrait utiliser sort | uniq -c
head (après éventuellement wc -l)cat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Introduction au scripting Bash