Utilisation des expressions régulières

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.txt

Cette 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.txt

Remplacez toutes les occurrences de “foo” par “bar” dans data.txt :

sed 's/foo/bar/g' data.txt

Utilisation 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.2

Remplacez 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.X

Appariement 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}' datafile

Cette 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.