Qu'est-ce que NR intégré awk?

Qu'est-ce que NR intégré awk?
AWK est un langage de script très puissant qui peut être utilisé directement à partir du terminal Linux. Il fonctionne en passant des commandes sur lesquelles votre système fonctionne. Ce langage de script a une gamme de différentes variables spéciales intégrées, et l'objectif de cet article est de parler de l'une de ces variables spéciales suivies par son utilisation. Cette variable est appelée «NR». Explorons-nous davantage comment nous pouvons utiliser cette variable dans awk.

Qu'est-ce que NR intégré awk?

«NR» est une variable intégrée spéciale de AWK qui signifie «Nombre d'enregistrements». Cette variable est utilisée pour traiter le nombre d'enregistrements présents dans les fichiers spécifiés.

Exemples d'utilisation de NR intégrée awk dans Ubuntu 20.04:

Pour en savoir plus sur l'utilisation de NR intégrée AWK, vous devrez passer par les exemples suivants qui ont été mis en œuvre sur un Ubuntu 20.04 Système. Cependant, avant de parler de ces exemples, nous aimerions partager avec vous l'exemple de fichier texte que nous avons créé dans notre répertoire domestique nommé noms.SMS. Ce fichier contient les noms de quelques individus, suivis de leur âge respectif. Nous utiliserons le même fichier texte pour démontrer les quatre exemples. Ce fichier texte est le suivant:

Exemple n ° 1: affichage des numéros de ligne avec les enregistrements dans un fichier texte:

Dans cet exemple, nous voulons afficher tous les enregistrements de notre fichier texte cible afin que chaque enregistrement soit attribué avec un numéro de ligne spécifique après un ordre ascendant. Vous auriez remarqué ci-dessus que le fichier texte que nous utilisons contenait des enregistrements, mais ils étaient sans numéro de ligne. De plus, les enregistrements ici se réfèrent aux lignes de texte distinctes présentes dans un fichier texte. Par exemple, si un fichier texte a cinq lignes différentes, nous dirons qu'elle a cinq enregistrements différents. Pour rendre la déclaration susmentionnée ci-dessus, je.e., Afficher les numéros de ligne avec les enregistrements de notre fichier texte cible, nous exécuterons la commande suivante dans notre terminal:

$ awk 'imprimer nr, $ 0' noms.SMS

Dans cette commande, le mot-clé «awk» indiquera à notre système que nous essayons d'exécuter une commande en utilisant le langage de script awk. Ensuite, nous avons une commande «imprimer» suivie du mot-clé «NR» et de la variable spéciale «0 $». Maintenant, cette partie de la commande servira le but d'affichage des numéros de ligne ainsi que les enregistrements présents dans notre fichier texte cible. Enfin, nous avons fourni le nom de notre fichier texte cible dans cette commande afin qu'il puisse être lu facilement. Nous avons exécuté cette commande simplement en appuyant sur la touche Entrée.

Vous pouvez facilement voir sur le terminal qu'en raison de l'exécution de cette commande, le contenu de notre fichier texte cible, je.e., Tous les enregistrements de notre fichier texte ont été affichés avec leurs numéros de ligne respectifs comme indiqué dans l'image ci-dessous:

Exemple n ° 2: Affichage des enregistrements d'un fichier texte se situant dans une plage spécifiée:

Parfois, vous ne voulez pas que tous les enregistrements du fichier soient affichés ou traités plus loin; Vous voulez plutôt utiliser les enregistrements qui se trouvent dans une plage spécifiée. Par conséquent, dans cet exemple, nous voulons que tous les enregistrements de fichiers texte cibles soient affichés sur le terminal qui se trouve dans notre plage de numéros de ligne spécifiée. Pour mieux comprendre, vous devez d'abord examiner la commande suivante qui sera utilisée pour servir cet objectif:

$ awk 'nr == 4, nr == 8 imprimer nr, $ 0'.SMS

Dans cette commande, le mot-clé «awk» indiquera à notre système que nous essayons d'exécuter une commande en utilisant le langage de script awk. Ensuite, nous avons l'instruction 'nr == 4, nr == 8' qui spécifiera la plage d'enregistrements à afficher, i.e., En utilisant cette déclaration particulière, nos enregistrements des numéros de ligne 4 à 8 (inclus) seront affichés sur le terminal. Vous pouvez définir cette gamme en fonction de votre propre choix. Après cela, nous avons la commande «imprimer» suivie du mot-clé «NR» et de la variable spéciale «0 $». Maintenant, cette partie de la commande servira le but d'affichage des numéros de ligne ainsi que les enregistrements spécifiés présents dans notre fichier texte cible. Enfin, nous avons fourni le nom de notre fichier texte cible dans cette commande afin qu'il puisse être lu facilement. Nous avons exécuté cette commande simplement en appuyant sur la touche Entrée.

Vous pouvez facilement visualiser sur le terminal qu'en raison de l'exécution de cette commande, le contenu spécifique de notre fichier texte cible, je.e., Tous les enregistrements de notre fichier texte se situant dans la plage spécifiée, ont été affichés avec leurs numéros de ligne respectifs, comme indiqué dans l'image ci-dessous:

Exemple # 3: Affichage des numéros de ligne avec les enregistrements spécifiques dans un fichier texte séparé par le symbole spécial «»:

Pour rendre le contenu d'un fichier texte plus lisible, vous voudrez peut-être séparer les numéros de ligne des enregistrements en utilisant n'importe quel symbole spécial. De plus, vous voudrez peut-être qu'une colonne spécifique de tous les enregistrements soit affichée. Nous avons conçu cet exemple pour élaborer la méthode d'affichage des numéros de ligne avec la colonne spécifique des enregistrements d'un fichier texte séparé par le symbole spécial «». Pour atteindre ce type de sortie, vous devrez exécuter la commande suivante:

$ awk 'imprimer nr "-", $ 1' noms.SMS

Cette commande est à peu près similaire à la commande que nous avons exécutée pour notre premier exemple. Cependant, la seule différence est que nous avons spécifié le séparateur "". De plus, au lieu d'utiliser la variable spéciale «0 $», nous avons utilisé la variable spéciale «1 $», qui spécifiera que seule la première colonne de tous les enregistrements de fichiers texte doit être imprimée.

Dans la sortie ci-dessous, vous pouvez voir que seule la première colonne de tous les enregistrements de notre fichier texte cible a été affichée; Cependant, les numéros de ligne ont été bien séparés des enregistrements à l'aide du symbole spécial «-».

Exemple n ° 4: Affichage du nombre total d'enregistrements dans un fichier texte:

Parfois, vous voudrez peut-être que le nombre total d'enregistrements du fichier soit affiché sur le terminal. Pour ce faire, vous devez simplement exécuter la commande suivante:

$ awk 'end imprimer nr' noms.SMS

Dans cette commande, le mot-clé «fin» indiquera au système qu'il n'a besoin que de compter le nombre d'enregistrements du fichier texte, et l'instruction «imprimer NR» indiquera à votre système d'imprimer le nombre total d'enregistrements sur le terminal.

Nous savons que nous avions un total de 10 enregistrements dans notre fichier texte cible, et cela est également vérifié à partir de la sortie de la commande susmentionnée ci-dessus dans l'image ci-dessous:

Conclusion:

Cet article s'est ouvert avec une brève introduction au langage de script awk. Le nœud de ce guide était de vous apprendre l'utilisation de la variable spéciale «NR». Tout d'abord, nous avons donné un aperçu de cette variable spéciale, suivie de quatre exemples différents avec l'aide de laquelle vous pouvez comprendre son utilisation. Une fois que vous avez parcouru ces exemples, vous serez en bonne position pour utiliser efficacement cette variable spéciale dans awk.