Fish Shell:
Utilisation des expressions régulières
Comment faire :
Bien que Fish Shell lui-même ne dispose pas d’une commande intégrée pour les regex, il utilise efficacement des commandes externes comme grep, sed et awk qui prennent en charge les regex, vous permettant d’incorporer des opérations regex dans vos scripts.
Appariement de motifs basique avec grep
Recherchez des lignes dans un fichier qui correspondent à un motif :
grep '^[0-9]+' myfile.txtCette commande trouve les lignes commençant par un ou plusieurs chiffres dans myfile.txt.
Extraction et remplacement avec sed
Extrayez les numéros de téléphone d’un fichier :
sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' contacts.txtRemplacez toutes les occurrences de “foo” par “bar” dans data.txt :
sed 's/foo/bar/g' data.txtUtilisation de string pour les Regex basiques
La commande string de Fish Shell prend en charge les opérations regex simples comme l’appariement et le remplacement :
Appariez un motif dans une chaîne :
echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'Sortie :
3.1.2Remplacez les chiffres suivant ‘fish’ par ‘X.X.X’ :
echo "Bienvenue dans fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'Sortie :
Bienvenue dans fish X.X.XAppariement avancé avec awk
Imprimez la deuxième colonne de données où la première colonne correspond à un motif spécifique :
awk '$1 ~ /^a[0-9]+$/ {print $2}' datafileCette commande recherche dans datafile les lignes où la première colonne commence par un “a” suivi d’un ou plusieurs chiffres et imprime la deuxième colonne.
En intégrant ces commandes externes, les programmeurs de Fish Shell peuvent exploiter toute la puissance des expressions régulières pour des tâches complexes de manipulation de texte, améliorant ainsi les capacités natives du shell.