Apprenez à utiliser des variables intégrées awk - partie 10
- 4998
- 1436
- Emilie Colin
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 awkInté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:
NOM DE FICHIER
: Nom du fichier d'entrée actuel (ne modifie pas le nom de la variable)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)NF
: Nombre de champs dans la ligne d'entrée actuelle (ne modifie pas le nom de la variable)De
: séparateur de champ de sortieFS
: séparateur de champ d'entréeORS
: séparateur d'enregistrement de sortieRs
: 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.SMSVariable 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.SMSImprimer le contenu du fichier
$ awk 'end print "Le nombre d'enregistrements dans le fichier est:", nr' ~ / domaines.SMSNombre 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.SMSListe des contenus des fichiers
$ awk 'print "disques:", nr, "a", nf, "champs"; '~ / noms.SMSNombre 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:
- Une méthode consiste à utiliser le FS variable intégrée
- 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 / passwdChamps 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 / passwdFiltre 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 / passwdAjouter 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.
- « Geary - un bon client de messagerie moderne pour Linux
- Cumulus - une application météo en temps réel pour les ordinateurs de bureau Linux »