Apprenez à utiliser des variables intégrées awk - partie 10

Apprenez à utiliser des variables intégrées awk - partie 10

Alors que nous découvrons la section de Awk caractéristiques, dans cette partie de la série, nous traverserons le concept de variables intégrées dans awk. Il existe deux types de variables que vous pouvez utiliser dans awk, ce sont; défini par l'utilisateur variables, que nous avons couvertes dans la partie 8 et intégré variables.

Exemples de variables intégrées awk

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

  1. NOM DE FICHIER : Nom du fichier d'entrée actuel (ne modifie pas le nom de la variable)
  2. Frousser : Numéro de la ligne d'entrée actuelle (c'est-à-dire la ligne 1, 2, 3… donc, ne modifiez pas le nom de la variable)
  3. NF : Nombre de champs dans la ligne d'entrée actuelle (ne modifie pas le nom de la variable)
  4. De : séparateur de champ de sortie
  5. FS : séparateur de champ d'entrée
  6. ORS : séparateur d'enregistrement de sortie
  7. Rs : séparateur d'enregistrement d'entrée

Procédons-nous pour illustrer l'utilisation de certaines des variables intégrées AWK ci-dessus:

Pour lire le nom de fichier du fichier d'entrée actuel, vous pouvez utiliser le NOM DE FICHIER Variable intégrée comme suit:

$ awk 'imprimer le nom de fichier' ~ / domaines.SMS 
Variable de nom de fichier awk

Vous vous rendrez compte que le nom de fichier est imprimé pour chaque ligne d'entrée, c'est-à-dire le comportement par défaut de Awk Lorsque vous utilisez NOM DE FICHIER variable intégrée.

En utilisant NR Pour compter le nombre de lignes (enregistrements) dans un fichier d'entrée, n'oubliez pas que cela compte également les lignes vides, comme nous le verrons dans l'exemple ci-dessous.

Lorsque nous affichons le fichier domaines.SMS en utilisant la commande chat, il contient 14 lignes avec texte et vide 2 lignes:

$ cat ~ / domaines.SMS 
Imprimer le contenu du fichier
$ awk 'end print "Le nombre d'enregistrements dans le fichier est:", nr' ~ / domaines.SMS 
Nombre de lignes

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

$ cat ~ / noms.SMS 
Liste des contenus des fichiers
$ awk 'print "disques:", nr, "a", nf, "champs";  '~ / noms.SMS 
Nombre de comptes awk de champs dans le fichier

Ensuite, vous pouvez également spécifier un séparateur de champ de saisie à l'aide du FS variable intégrée, il définit comment Awk divise les lignes d'entrée en champs.

La valeur par défaut pour FS est espace et languette, Mais nous pouvons modifier la valeur de FS à tout caractère qui demandera à AWK de diviser les lignes d'entrée en conséquence.

Il existe deux méthodes pour ce faire:

  1. Une méthode consiste à utiliser le FS variable intégrée
  2. Et la seconde consiste à invoquer le -F Option awk

Considérez le fichier / etc / passwd Sur un système Linux, les champs de ce fichier sont divisés en utilisant le : caractère, nous pouvons donc le spécifier comme le nouveau séparateur de champ de saisie lorsque nous voulons filtrer certains champs comme dans les exemples suivants:

Nous pouvons utiliser le -F Option comme suit:

$ awk -f ': "print $ 1, $ 4;' / etc / passwd 
Champs de filtre awk dans le fichier de mot de passe

Facultativement, nous pouvons également profiter du FS Variable intégrée comme ci-dessous:

$ awk 'begin fs = “:”;  print 1 $, 4 $;  '/ etc / passwd 
Filtre Fields dans le fichier en utilisant awk

Pour spécifier un séparateur de champ de sortie, utilisez le De Variable intégrée, il définit comment les champs de sortie seront séparés en utilisant le caractère que nous utilisons comme dans l'exemple ci-dessous:

$ awk -f ': "begin ofs =" ==> "; print $ 1, $ 4;' / etc / passwd 
Ajouter le séparateur au champ dans le fichier

Dans ce Partie 10, Nous avons exploré l'idée d'utiliser des variables intégrées awk qui sont livrées avec des valeurs prédéfinies. Mais nous pouvons également modifier ces valeurs, cependant, il n'est pas recommandé de le faire à moins que vous ne sachiez ce que vous faites, avec une compréhension adéquate.

Après cela, nous progresserons pour couvrir la façon dont nous pouvons utiliser les variables de shell dans les opérations de commande awk, donc, restez connecté à Tecmint.