Comment utiliser les variables shell dans les commandes awk - Partie 11
Lorsque nous écrivons des scripts shell, nous incluons normalement d’autres programmes ou commandes plus petits tels que les opérations Awk dans nos scripts. Dans le cas d’Awk, nous devons trouver des moyens de passer certaines valeurs du shell aux opérations Awk.
Cela peut être fait en utilisant des variables shell dans les commandes Awk, et dans cette partie de la série, nous allons apprendre comment permettre à Awk d’utiliser des variables shell qui peuvent contenir des valeurs que nous voulons passer aux commandes Awk.
Il y a deux façons possibles d’activer Awk pour utiliser des variables shell :
1. Utilisation des guillemets shell
Prenons un exemple pour illustrer comment vous pouvez réellement utiliser les guillemets shell pour substituer la valeur d’une variable shell dans une commande Awk.
Dans cet exemple, nous voulons rechercher un nom d’utilisateur dans le fichier /etc/passwd, filtrer et imprimer les informations de compte de l’utilisateur.
Par conséquent, nous pouvons écrire un script test.sh avec le contenu suivant :
#!/bin/bash
Read user input
read -p "Please enter username: " username
Search for username in /etc/passwd file and print details on the screen
cat /etc/passwd | awk "/$username/ { print $0 }"
Ensuite, enregistrez le fichier et quittez.
Interprétation de la commande Awk dans le script test.sh ci-dessus :
cat /etc/passwd | awk "/$username/ "' { print $0 }'
« /$username/ " - les guillemets shell sont utilisés pour remplacer la valeur de la variable shell username dans la commande Awk. La valeur du nom d’utilisateur est le modèle à rechercher dans le fichier /etc/passwd.
Notez que le guillemet double est en dehors du script Awk, '{ print $0 }'.
Rendez ensuite le script exécutable et exécutez-le comme suit :
chmod +x test.sh
./text.sh
Après avoir exécuté le script, vous serez invité à entrer un nom d’utilisateur, à saisir un nom d’utilisateur valide et à appuyer sur Entrée. Vous allez afficher les détails du compte de l’utilisateur à partir du fichier /etc/passwd comme ci-dessous :
2. Utilisation de l’affectation de variable d’awk
Cette méthode est plus simple et meilleure que la première. Si l’on considère l’exemple ci-dessus, nous pouvons exécuter une commande simple pour accomplir le travail. Dans cette méthode, nous utilisons l’option -v pour attribuer une variable shell à une variable Awk.
Tout d’abord, créez une variable shell, un nom d’utilisateur et attribuez-lui le nom que nous voulons rechercher dans le fichier /etc/passswd :
username="aaronkilik"
Tapez ensuite la commande ci-dessous et appuyez sur Entrée :
cat /etc/passwd | awk -v name="$username" ' $0 ~ name {print $0}'
Explication de la commande ci-dessus :
-v– Option Awk pour déclarer une variableusername– est la variable shellname– est la variable Awk
Jetons un coup d'œil attentif à $0 ~ name à l'intérieur du script Awk, ' $0 ~ name {print $0}'. Rappelez-vous, lorsque nous avons couvert les opérateurs de comparaison Awk dans la partie 4 de cette série, l’un des opérateurs de comparaison était valeur ~ modèle, ce qui signifie : vrai si la valeur correspond au modèle.
La sortie($0) de la commande cat redirigée vers Awk correspond au motif (aaronkilik) qui est le nom que nous recherchons dans /etc/passwd, par conséquent, l’opération de comparaison est vraie. La ligne contenant les informations du compte de l’utilisateur est ensuite imprimée à l’écran.
Conclusion
Nous avons couvert une section importante des fonctionnalités d’Awk, qui peuvent nous aider à utiliser les variables shell dans les commandes Awk. Souvent, vous allez écrire de petits programmes ou commandes Awk dans des scripts shell et, par conséquent, vous devez avoir une compréhension claire de la façon d’utiliser les variables shell dans les commandes Awk.
Dans la prochaine partie de la série Awk, nous nous pencherons sur une autre section critique des fonctionnalités d’Awk, à savoir les instructions de contrôle de flux. Alors restez à l’écoute et continuons à apprendre et à partager.
Pour ceux qui recherchent une ressource complète, nous avons compilé tous les articles de la série Awk dans un livre, qui comprend 13 chapitres et s’étend sur 41 pages, couvrant à la fois l’utilisation de base et avancée d’Awk avec des exemples pratiques.
| Nom du produit | Prix | Acheter |
|---|---|---|
| eBook : Présentation du guide de démarrage Awk pour les débutants | 8,99 $ | [Acheter maintenant] |

