Recherche de site Web

Comment écrire des scripts à l'aide du langage de programmation Awk - Partie 13


Depuis le début de la série Awk jusqu'à la partie 12, nous avons écrit de petites commandes et programmes Awk respectivement sur la ligne de commande et dans des scripts shell.

Cependant, Awk, tout comme Shell, est également un langage interprété. Par conséquent, avec tout ce que nous avons parcouru depuis le début de cette série, vous pouvez désormais écrire des scripts exécutables Awk.

Semblable à la façon dont nous écrivons un script shell, les scripts Awk commencent par la ligne :

#! /path/to/awk/utility -f 

Par exemple, sur mon système, l'utilitaire Awk se trouve dans /usr/bin/awk, par conséquent, je démarrerais un script Awk comme suit :

#! /usr/bin/awk -f 

Explication de la ligne ci-dessus :

  1. #! – appelé Shebang, qui spécifie un interprète pour les instructions dans un script
  2. /usr/bin/awk – est l'interprète
  3. -f – option d'interprétation, utilisée pour lire un fichier programme

Cela dit, examinons maintenant quelques exemples de scripts exécutables Awk, nous pouvons commencer par le script simple ci-dessous. Utilisez votre éditeur préféré pour ouvrir un nouveau fichier comme suit :

vi script.awk

Et collez le code ci-dessous dans le fichier :

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Enregistrez le fichier et quittez, puis rendez le script exécutable en exécutant la commande ci-dessous :

chmod +x script.awk

Ensuite, exécutez-le :

./script.awk
Exemple de sortie
Writing my first Awk executable script!

Un programmeur critique doit se demander : « où sont les commentaires ? », oui, vous pouvez également inclure des commentaires dans votre script Awk. Écrire des commentaires dans votre code est toujours une bonne pratique de programmation.

Cela aide les autres programmeurs qui parcourent votre code à comprendre ce que vous essayez d'accomplir dans chaque section d'un script ou d'un fichier programme.

Par conséquent, vous pouvez inclure des commentaires dans le script ci-dessus comme suit.

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Ensuite, nous examinerons un exemple où nous lisons l’entrée d’un fichier. Nous souhaitons rechercher un utilisateur système nommé aaronkilik dans le fichier de compte, /etc/passwd, puis imprimer le nom d'utilisateur, l'ID de l'utilisateur et l'utilisateur. GID comme suit :

Vous trouverez ci-dessous le contenu de notre script appelé second.awk.

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

Enregistrez le fichier et quittez, rendez le script exécutable et exécutez-le comme ci-dessous :

chmod +x second.awk
./second.awk /etc/passwd
Exemple de sortie
Username : aaronkilik User ID : 1000 User GID : 1000

Dans le dernier exemple ci-dessous, nous utiliserons l'instruction do while pour imprimer les nombres de 0 à 10 :

Vous trouverez ci-dessous le contenu de notre script appelé do.awk.

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

Après avoir enregistré le fichier, rendez le script exécutable comme nous l'avons fait auparavant. Ensuite, exécutez-le :

chmod +x do.awk
./do.awk
Exemple de sortie
0
1
2
3
4
5
6
7
8
9
10

Résumé

Nous sommes arrivés à la fin de cette intéressante série Awk, j'espère que vous avez beaucoup appris des 13 parties, en guise d'introduction au langage de programmation Awk.

Comme je l'ai mentionné depuis le début, Awk est un langage de traitement de texte complet, pour cette raison, vous pouvez apprendre davantage d'autres aspects du langage de programmation Awk tels que les variables d'environnement, les tableaux, les fonctions (intégrées et définies par l'utilisateur) et au-delà.

Il existe encore d'autres parties de la programmation Awk à apprendre et à maîtriser. J'ai donc fourni ci-dessous quelques liens vers des ressources en ligne importantes que vous pouvez utiliser pour développer vos compétences en programmation Awk. Ce ne sont pas nécessairement tout ce dont vous avez besoin, vous pouvez également consulter à la recherche de livres de programmation Awk utiles.

Liens de référence : Guide de l'utilisateur GNU Awk et programmation en langage AWK

Pour toute réflexion ou question que vous souhaitez partager, utilisez le formulaire de commentaires ci-dessous. N'oubliez pas de toujours rester connecté à Tecmint pour des séries plus passionnantes.