Recherche de site Web

Apprenez à utiliser les variables intégrées d’awk - Partie 10


Au fur et à mesure que nous découvrirons la section des fonctionnalités d’Awk dans cette partie de la série, nous passerons en revue le concept de variables intégrées dans Awk. Il existe deux types de variables que vous pouvez utiliser dans Awk, ce sont ; les variables définies par l’utilisateur, que nous avons abordées dans la partie 8, et les variables intégrées.

Les variables intégrées ont des valeurs déjà définies dans Awk, mais nous pouvons également modifier soigneusement ces valeurs, les variables intégrées incluent :

  • FILENAME : nom du fichier d’entrée actuel( ne change pas le nom de la variable)
  • FR : numéro de la ligne d’entrée actuelle (c’est-à-dire la ligne d’entrée 1, 2, 3... etc., ne pas changer le nom de la variable)
  • NF : nombre de champs dans la ligne de saisie courante (ne pas changer le nom de la variable)
  • OFS : séparateur de champ de sortie
  • FS : séparateur de champ d’entrée
  • ORS : séparateur d’enregistrement de sortie
  • RS : séparateur d’enregistrement d’entrée

Allons illustrer l’utilisation de certaines des variables intégrées d’Awk ci-dessus :

Pour lire le nom de fichier du fichier d’entrée actuel, vous pouvez utiliser la variable intégrée FILENAME comme suit :

awk ' { print FILENAME } ' ~/domains.txt 

Vous verrez que le nom de fichier est affiché pour chaque ligne d’entrée. Il s’agit du comportement par défaut d’Awk lors de l’utilisation de la variable intégrée FILENAME.

En utilisant NR pour compter le nombre de lignes (enregistrements) dans un fichier d’entrée, rappelez-vous qu’il compte également les lignes vides, comme nous le verrons dans l’exemple ci-dessous.

Lorsque nous visualisons le fichier domains.txt l’aide de la commande cat, il contient 14 lignes avec du texte et 2 lignes vides :

cat ~/domains.txt

Pour compter le nombre d’enregistrements, utilisez la variable intégrée NR comme suit :

awk ' END { print "Number of records in file is: ", NR } ' ~/domains.txt 

Pour compter le nombre de champs dans un enregistrement ou une ligne, nous utilisons la variable intégrée NR comme suit :

$ cat ~/names.txt

Pour compter le nombre de champs dans chaque enregistrement ou ligne, utilisez la variable native NF :

awk '{ print "Record:",NR,"has",NF,"fields" ; }' ~/names.txt

Ensuite, vous pouvez également spécifier un séparateur de champs d’entrée à l’aide de la variable intégrée FS, elle définit comment Awk divise les lignes d’entrée en champs.

La valeur par défaut pour FS est espace et tabulation, mais nous pouvons changer la valeur de FS en n’importe quel caractère qui indiquera à Awk de diviser les lignes de saisie en conséquence.

Pour ce faire, il existe deux méthodes :

  • une méthode consiste à utiliser la variable native FS
  • et la seconde est d’invoquer l’option -F Awk

Considérez le fichier /etc/passwd sur un système Linux, les champs de ce fichier sont divisés à l’aide du caractère :, nous pouvons donc le spécifier comme nouveau séparateur de champs d’entrée lorsque nous voulons filtrer certains champs comme dans les exemples suivants :

Nous pouvons utiliser l’option -F comme suit :

awk -F':' '{ print $1, $4 ;}' /etc/passwd

En option, nous pouvons également tirer parti de la variable intégrée FS comme ci-dessous :

awk ' BEGIN {  FS=“:” ; }  { print $1, $4  ; } ' /etc/passwd

Pour spécifier un séparateur de champ de sortie, utilisez la variable native OFS, elle définit comment les champs de sortie seront séparés à l’aide du caractère que nous utilisons comme dans l’exemple ci-dessous :

awk -F':' ' BEGIN { OFS="==>" ;} { print $1, $4 ;}' /etc/passwd

Dans la partie 10, nous avons exploré l’idée d’utiliser des variables intégrées à Awk qui viennent avec des valeurs prédéfinies. Mais nous pouvons également changer ces valeurs, bien qu’il ne soit pas recommandé de le faire à moins que vous ne sachiez ce que vous faites, avec une compréhension adéquate.

Après cela, nous allons voir comment nous pouvons utiliser les variables shell dans les opérations de commande Awk et, par conséquent, rester connectés à Tecmint.

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 produitPrixAcheter
eBook : Présentation du guide de démarrage Awk pour les débutants8,99 $[Acheter maintenant]

Articles connexes: