Comment permettre à awk d'utiliser des variables de shell - Partie 11

Comment permettre à awk d'utiliser des variables de shell - Partie 11

Lorsque nous écrivons des scripts shell, nous incluons normalement d'autres programmes ou commandes plus petits tels que Awk Opérations dans nos scripts. Dans le cas de AWK, nous devons trouver des moyens de passer certaines valeurs de la coque aux opérations awk.

Cela peut être fait en utilisant des variables de shell dans les commandes AWK, et dans cette partie de la série, nous apprendrons à permettre à AWK d'utiliser des variables de shell qui peuvent contenir des valeurs que nous voulons passer aux commandes awk.

Il y a peut-être deux façons de permettre à AWK d'utiliser des variables de shell:

1. Utilisation de la citation de shell

Laissez-nous jeter un coup d'œil à un exemple pour illustrer comment vous pouvez réellement utiliser la citation de shell pour remplacer la valeur d'une variable de 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 du compte de l'utilisateur.

Par conséquent, nous pouvons écrire un test.shot script avec le contenu suivant:

#!/ bin / bash #read insertion de l'utilisateur Read -p "Veuillez saisir le nom d'utilisateur:" Nom d'utilisateur #search pour nom d'utilisateur dans / etc / passwd Fichier et imprimez les détails de l'écran Cat / etc / passwd | awk "/ $ username /" 'print $ 0' 

Par la suite, enregistrez le fichier et sortez.

Interprétation de la commande awk dans le test.shot script ci-dessus:

chat / etc / passwd | awk "/ $ username /" 'print $ 0' 

"/ $ nom d'utilisateur /" - Citation de coquille utilisée pour remplacer la valeur de la variable de la coque nom d'utilisateur Dans la commande awk. La valeur de nom d'utilisateur est le modèle à rechercher dans le fichier / etc / passwd.

Notez que la double citation est en dehors du script awk, 'imprimer 0'.

Ensuite, faites l'exécutable du script et exécutez-le comme suit:

$ chmod + x test.sh $ ./texte.shot 

Après l'exécution du script, vous serez invité à entrer un nom d'utilisateur, Tapez un valide nom d'utilisateur et frapper Entrer. Vous afficherez les détails du compte de l'utilisateur à partir du / etc / passwd Fichier comme ci-dessous:

Script shell pour trouver le nom d'utilisateur dans le fichier de mot de passe

2. Utilisation de l'affectation variable de Awk

Cette méthode est beaucoup plus simple et meilleure par rapport à la méthode un ci-dessus. Compte tenu de l'exemple ci-dessus, nous pouvons exécuter une commande simple pour accomplir le travail. Selon cette méthode, nous utilisons le -V Option pour affecter une variable shell à une variable awk.

Tout d'abord, créez une variable de shell, nom d'utilisateur et attribuez-le le nom que nous voulons rechercher dans le / etc / passwd déposer:

username = "AaronKilik" 

Puis tapez la commande ci-dessous et appuyez sur Entrée:

# chat / etc / passwd | awk -v name = "$ username" '$ 0 ~ name print $ 0' 
Trouvez le nom d'utilisateur dans le fichier de mot de passe à l'aide de awk

Explication de la commande ci-dessus:

  1. -V - Option awk pour déclarer une variable
  2. nom d'utilisateur - est la variable de la coquille
  3. nom - est la variable awk

Laissez-nous regarder attentivement 0 $ ~ Nom À l'intérieur du script awk, '$ 0 ~ name print 0'. N'oubliez pas que 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 la valeur ~ modèle, ce qui signifie: vrai si la valeur correspond au motif.

Le Sortie (0 $) de la commande de chat tuyaux pour awk correspond au motif (Aaronkilik) quel est le nom que nous recherchons / etc / passwd, En conséquence, 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 AWK, qui peuvent nous aider à utiliser les variables de shell dans les commandes AWK. Plusieurs fois, vous rédigerez de petits programmes ou commandes AWK dans Shell Scripts et, par conséquent, vous devez avoir une compréhension claire de la façon d'utiliser les variables de shell dans les commandes AWK.

Dans la partie suivante de la série AWK, nous plongerons dans une autre section critique des fonctionnalités AWK, c'est-à-dire les instructions de contrôle de flux. Alors restez à régler et continuons à apprendre et à partager.