Comment fonctionne la commande Gawk?

La commande gawk est un outil d'administration système standard. Apprenez à l'utiliser pour extraire des informations des fichiers et de votre système.

 · 2 min read

1. Déjà c'est quoi gawk











GNU Awk (ou gawk) est l'implémentation du langage de programmation awk par le projet GNU. C'est un logiciel libre distribué sous licence GNU GPL.  GNU Awk est l'implémentation awk par défaut des distributions GNU/Linux actuelles. Initialement développé pour le système d'exploitation UNIX dans les années 1970. Le langage de programmation Awk est spécialisé dans le traitement du formatage des données dans les fichiers texte, en particulier les données textuelles organisées en colonnes.


  À l'aide du langage de programmation Awk, vous pouvez manipuler ou extraire des données, générer des rapports, faire correspondre des modèles, effectuer des calculs, etc., avec une grande flexibilité. Awk vous permet d'accomplir des tâches quelque peu difficiles avec une seule ligne de code. Pour obtenir les mêmes résultats en utilisant des langages de programmation traditionnels tels que C ou Python, il faudrait des efforts supplémentaires et de nombreuses lignes de code.

gawk fait également référence à l'utilitaire de ligne de commande disponible par défaut avec la plupart des distributions Linux. La plupart des distributions fournissent également un lien symbolique pour awk pointer vers gawk


2. Comment traitez les données avec le puissant gawk ?



Gawk traite les données directement à partir de l'entrée standard - STDIN. Un modèle courant consiste à canaliser la sortie d'autres programmes écrit en langage awk pour extraire et imprimer des données, mais gawk peut également traiter des données à partir de fichiers.

La commande gawk sous Linux est utilisée pour l'analyse des modèles et le langage de traitement. La commande gawk ne nécessite aucune compilation et permet à l'utilisateur d'utiliser des variables, des fonctions numériques, des fonctions de chaîne et des opérateurs logiques. C'est un utilitaire qui permet aux programmeurs d'écrire des programmes minuscules et efficaces sous la forme d'instructions qui définissent les modèles de texte à rechercher, dans un document texte et l'action à entreprendre lorsqu'une correspondance est trouvée dans une ligne. 


La commande gawk peut être utilisée pour : 

  1. Scanne un fichier ligne par ligne.
  2. Divise chaque ligne d'entrée en champs.
  3. Compare la ligne/les champs d'entrée au modèle.
  4. Effectue une ou plusieurs actions sur les lignes correspondantes.
  5. Transformer les fichiers de données.
  6. Produire des rapports formatés.
  7. Formater les lignes de sortie.
  8. Opérations arithmétiques et sur les chaînes.
  9. Conditionnels et boucles.


Syntaxe: 




Quelques Options Importantes : 

 

  1. -f fichier_prog, –file=fichier_prog : lit la source du programme AWK à partir du fichier fichier-programme, au lieu du premier argument de la ligne de commande. Plusieurs options -f (ou –file) peuvent être utilisées.
  2. -F fs, –field-separator=fs : il utilise FS comme séparateur de champ d'entrée (la valeur de la variable prédéfinie FS).
  3. -v var=val, –assign=var=val : attribue la valeur val à la variable var , avant le début de l'exécution du programme.


Quelques variables intégrées : 

 

  1. NR : Il conserve un décompte actuel du nombre de lignes d'entrée.
  2. NF : Il tient un compte du nombre de champs dans l'enregistrement d'entrée actuel.
  3. FS : Il contient le caractère séparateur de champ qui est utilisé pour diviser les champs sur la ligne d'entrée.
  4. RS : Il stocke le caractère séparateur d'enregistrement actuel.
  5. OFS : il stocke le séparateur de champ de sortie, qui sépare les champs lorsque Awk les imprime.
  6. ORS : il stocke le séparateur d'enregistrement de sortie, qui sépare les lignes de sortie lorsque Awk les imprime.



Pour en savoir plus sur l'utilisation de Gawk avec quelques exemple je vous invite à consulter ce manuel d'utilisation .


Mogo Kamdem Roosevelt

Je suis Mogo Kamdem Roosevelt Ingénieur en Sécurité informatique DevOps/Graphiste à l'IREX

No comments yet

No comments yet. Start a new discussion.

Add Comment