Qu'est-ce qu'AWK NF ?

Qu Est Ce Qu Awk Nf



Le langage de script AWK possède également une série de variables spéciales intégrées pour servir certains objectifs prédéfinis. L'une de ces variables intégrées est 'NF' qui a sa propre fonctionnalité prédéfinie. Cet article explorera le but de cette variable AWK intégrée en démontrant quelques exemples pertinents dans Ubuntu 20.04.

AWK NF dans Ubuntu 20.04 :

La variable AWK « NF » est utilisée pour imprimer le nombre de champs dans toutes les lignes de tout fichier fourni. Cette variable intégrée parcourt toutes les lignes du fichier une par une et imprime le nombre de champs séparément pour chaque ligne. Pour bien comprendre cette fonctionnalité, vous devrez lire les exemples décrits ci-dessous.

Exemples de démonstration de l'utilisation d'AWK NF dans Ubuntu 20.04 :

Les quatre exemples suivants ont été conçus de manière à vous apprendre l'utilisation d'AWK NF d'une manière très facile à comprendre. Tous ces exemples ont été implémentés à l'aide du système d'exploitation Ubuntu 20.04.







Exemple #1 : Imprimer le nombre de champs de chaque ligne d'un fichier texte :

Dans cet exemple, nous voulions imprimer le nombre de champs ou de colonnes de chaque ligne ou ligne ou enregistrement d'un fichier texte dans Ubuntu 20.04. Pour vous montrer la méthode à suivre, nous avons créé le fichier texte illustré dans l'image ci-dessous. Ce fichier texte contient les taux de pommes par kilogramme de cinq villes différentes du Pakistan.





Une fois que nous avons créé cet exemple de fichier texte, nous avons exécuté la commande suivante pour imprimer le nombre de champs de chaque ligne de ce fichier texte dans notre terminal :





$ ok ' { impression NF } ' AppleRates.txt

Dans cette commande, nous avons le mot-clé 'awk' qui montre que nous exécutons une commande AWK suivie de l'instruction 'print NF' qui va simplement parcourir chaque ligne du fichier texte cible et imprimer le nombre de champs séparément pour chaque ligne du fichier texte. Enfin, nous avons le nom de ce fichier texte (dont les champs sont à compter) qui dans notre cas est « AppleRatest.txt ».



Puisque nous avions exactement le même nombre de champs pour les cinq lignes de notre fichier texte, c'est-à-dire 2, le même nombre est imprimé comme le nombre de champs pour toutes les lignes du fichier texte en raison de l'exécution de cette commande. Cela peut être vu sur l'image ci-dessous:

Exemple # 2 : Imprimer le nombre de champs de chaque ligne d'un fichier texte de manière présentable :

La sortie affichée dans l'exemple décrit ci-dessus peut également être présentée de manière agréable en affichant les numéros de ligne et le nombre de champs de chaque ligne du fichier texte. De plus, nous pouvons également séparer les numéros de ligne du nombre de champs avec n'importe quel caractère spécial de notre choix. Nous utiliserons le même fichier texte que nous avons utilisé pour notre premier exemple pour vous montrer cela. Cependant, notre commande à exécuter dans ce cas sera légèrement différente et se présente comme suit :

$ ok ' { imprimer NR, '---', NF } ' AppleRates.txt

Dans cette commande, nous avons introduit la variable AWK intégrée 'NR' qui imprimera simplement les numéros de ligne de toutes les lignes de notre fichier texte cible. De plus, nous avons utilisé trois tirets, '-' comme caractère spécial pour séparer les numéros de ligne du nombre de champs de notre fichier texte fourni.

Cette sortie légèrement modifiée du même fichier texte est illustrée dans l'image ci-dessous :

Exemple #3 : Imprimer les premier et dernier champs de chaque ligne d'un fichier texte :

Outre le simple comptage du nombre de champs de toutes les lignes d'un fichier texte fourni, la variable spéciale 'NF' d'AWK peut également être utilisée pour extraire les valeurs réelles du dernier champ du fichier texte fourni. Encore une fois, nous avons utilisé le même fichier texte que nous avons utilisé pour nos deux premiers exemples. Cependant, nous souhaitons imprimer les valeurs réelles des premier et dernier champs de notre fichier texte dans cet exemple. Pour cela, nous avons exécuté la commande suivante :

$ ok ' { imprimer 1 $ , $NF } ' AppleRates.txt

Le mot-clé 'awk' est suivi de l'instruction 'print $1, $NF' dans cette commande. La variable spéciale '$1' a été utilisée pour imprimer les valeurs du premier champ ou de la première colonne de notre fichier texte fourni, tandis que la variable AWK '$NF' a été utilisée pour imprimer les valeurs du dernier champ ou de la dernière colonne de notre fichier texte cible. Vous devez remarquer ici que lorsque nous utilisons la variable AWK 'NF' telle quelle, elle est utilisée pour compter le nombre de champs de chaque ligne ; cependant, lorsqu'il est utilisé avec le symbole dollar '$', il extraira simplement les valeurs réelles du dernier champ du fichier texte fourni. Le reste de la commande est plus ou moins le même que celui des commandes qui ont été utilisées pour les deux premiers exemples.

Dans la sortie ci-dessous, vous pouvez voir que les valeurs réelles des premier et dernier champs de notre fichier texte fourni ont été imprimées sur le terminal. Vous pouvez voir que cette sortie est à peu près similaire à la sortie de la commande 'cat' uniquement parce que nous n'avions que deux champs dans notre fichier texte fourni ; par conséquent, d'une certaine manière, le contenu de tout notre fichier texte a été imprimé sur le terminal à la suite de l'exécution de la commande mentionnée ci-dessus.

Exemple # 4 : Séparez les enregistrements avec des champs manquants dans un fichier texte :

Parfois, il y a des enregistrements dans un fichier texte avec certains champs manquants, et vous voudrez peut-être séparer ces enregistrements de ceux qui sont complets à tous égards. Cela peut également être fait en utilisant la variable AWK 'NF'. Pour cela, nous avons créé un fichier texte nommé 'ExamMarks.txt' qui contient les notes d'examen de cinq étudiants différents dans trois examens différents ainsi que leurs noms. Cependant, pour le troisième examen, certains des étudiants étaient absents à cause de quoi leurs notes manquaient. Ce fichier texte est le suivant :

Pour distinguer les enregistrements avec des champs manquants des enregistrements avec des champs complets, nous allons exécuter la commande ci-dessous :

$ ok ' { imprimer NR, '--- > », NF } ' ExamMarks.txt

Cette commande est la même que celle que nous avons utilisée pour notre deuxième exemple. Cependant, à partir de la sortie de cette commande illustrée dans l'image suivante, vous pouvez voir que les premier et quatrième enregistrements sont complets, tandis que les deuxième, troisième et cinquième enregistrements contiennent des champs manquants.

Conclusion:

Le but de cet article était d'expliquer l'utilisation de la variable spéciale 'NF' AWK. Nous avons d'abord discuté brièvement du fonctionnement de cette variable, puis nous avons bien développé ce concept à l'aide de quatre exemples différents. Une fois que vous aurez bien compris tous les exemples partagés, vous pourrez utiliser la variable AWK 'NF' pour compter le nombre total de champs et imprimer les valeurs réelles du dernier champ du fichier fourni.