Recherche de site Web

Qu'est-ce que AWK NF ?


La fonction « AWK » est un utilitaire Linux utilisé pour l'analyse de texte qui offre un fort contrôle des données. Pour utiliser le programme informatique Linux et la fonction « AWK », les utilisateurs peuvent évaluer, modifier et générer les résultats préparés. La variable « AWK NF » est utilisée pour montrer combien de fichiers, d'éléments ou d'autres éléments sont contenus dans une ligne de n'importe quel fichier.

Fonctionnement de AWK NF

Le programme « AWK » fonctionne sur des programmes qui contiennent des règles composées de divers motifs et actions effectuées sur le texte qui correspond au motif. Un motif et une action constituent ensemble une règle. L'ensemble du programme « AWK » est ensuite enfermé dans une seule citation.

Maintenant, nous utilisons un exemple simple pour démontrer ce qui se passe lorsque nous tapons "who" dans le terminal Ubuntu 20.04. Cette commande affiche des informations sur l'utilisateur ainsi que l'heure et la date actuelles.

Linux@linux:~$ who

Nous exécutons cette commande en appuyant sur entrée sur le clavier, ce qui imprime la date et l'heure sous la forme « 2022-12-08 » et « 15:06 », respectivement, avant d'afficher un espace et le nom de l'utilisateur comme « Linux ».

Par défaut, « AWK » interprète un champ comme une chaîne de caractères encadrée par des espaces au début et à la fin d'une ligne. Ici, nous démontrons comment écrire une commande en utilisant les paramètres « AWK » et « who » pour récupérer le premier champ en utilisant le signe dollar et le numéro 1 ($1). Si nous souhaitons récupérer le premier champ d'un fichier texte ou d'autres données, nous utilisons le signe dollar « $1 » avec un. Pour cela, nous utilisons la commande dans laquelle nous écrivons d'abord « who ». Ensuite, nous utilisons cette barre « | ». Puis, nous mettons un espace en appuyant sur la barre d'espace du clavier. Nous écrivons ensuite « awk ». Ensuite, nous utilisons une virgule inversée, suivie d'accolades. Enfin, nous utilisons le mot « print » et le symbole « $1 » à l'intérieur de ces accolades.

Linux@linux:~$ who | awk ‘{print $1}’

Comme vous pouvez le voir dans l'image de sortie précédente, lorsque nous utilisons uniquement « who » dans le terminal et exécutons cela, il affiche le nom d'utilisateur ainsi que les informations nécessaires, qui incluent la date et l'heure. Cependant, comme nous utilisons « print $1 » avec « AWK » dans la commande précédente, il imprime seulement le premier champ car « $1 » est utilisé pour imprimer le premier champ du fichier parmi d'autres.

Créer un fichier texte sur le bureau à l'aide du terminal et imprimer tout son contenu avec « AWK »

Comme « AWK » est utilisé pour imprimer le contenu entier d'un fichier sur le terminal, nous créons un fichier texte comme première étape et imprimons les informations du fichier sur le terminal. Ici, nous créons un fichier texte sur le bureau en utilisant le terminal. Pour cela, nous écrivons la commande dans laquelle nous écrivons « nano » en tant qu'éditeur de texte. Ensuite, nous utilisons le symbole (~) suivi du slash «/». Puis, nous écrivons « Desktop » parce que nous créons un fichier sur le bureau suivi du slash «/». Encore une fois, nous écrivons ensuite le nom du fichier que nous voulons créer. Enfin, nous créons un fichier nommé « textfile » avec l'extension « .txt » car c'est un fichier texte.

Linux@linux:~$ nano ~/Desktop/textfile.txt

Par conséquent, un terminal nous affiche un écran vide lorsque nous saisissons cette commande, comme le montre l'image suivante :

Nous saisissons les données en les tapant dans le terminal que nous souhaitons stocker dans le fichier texte. Pour ce faire, nous créons cinq lignes. La première contient le mot « Bonjour ». La seconde contient « salut ». La troisième contient « coucou ». La quatrième contient deux éléments, « au revoir » et « 123 ». Et la cinquième ligne est vide, comme le montre l'image suivante :

Lorsque nous appuyons sur « Ctrl-x » après avoir entré les données dans le fichier « textfile.txt », le choix « oui » ou « non » apparaît à l'écran. Nous savons que nous voulons enregistrer le fichier. Donc, nous appuyons sur « Ctrl-y » pour enregistrer le fichier, et le fichier est créé avec succès.

L'image suivante montre le fichier affiché :

Comme nous le savons, le fichier est sauvegardé sur le bureau. Nous devons d'abord ajouter un répertoire sur le bureau en utilisant la commande « cd Desktop/ » puis appuyer sur la touche entrer.

Linux@linux:~$ cd Desktop/

Maintenant, nous utilisons la fonction « AWK » pour récupérer le contenu du fichier nouvellement créé, « textfile.txt », et les afficher à l'écran. Pour ce faire, nous utilisons la commande dans laquelle nous écrivons d'abord « awk ». Ensuite, nous utilisons les guillemets à l'intérieur de cela. Nous mettons les accolades et écrivons « print $0 ». Après cela, nous utilisons un espace. Enfin, nous écrivons le nom du fichier, « textfile.txt ».

Linux@linux:~/Desktop$ awk ‘{print $0}’ textfile.txt

Maintenant, lorsque nous exécutons cette commande, le contenu du fichier texte s'affiche comme vous pouvez le voir dans l'image suivante. La première ligne de ce fichier contient le mot « bonjour » suivi de « hey ». Le mot « salut » apparaît sur la troisième ligne. Deux éléments sont listés sur la quatrième ligne. Et la cinquième ligne est vide.

Affichage du contenu du fichier avec des numéros de ligne

En utilisant la variable « NR » dans la commande, nous imprimons le contenu du fichier avec le numéro de ligne dans la partie suivante. Pour ce faire, nous utilisons la commande dans laquelle nous écrivons d'abord « awk ». Ensuite, après un espace, nous utilisons une virgule inversée. À l'intérieur de celle-ci, nous plaçons les accolades. Ensuite, nous écrivons print. Enfin, nous écrivons « NR ». Après cela, nous mettons une virgule et écrivons « $0 ». Ensuite, nous sortons de l'accolade et de la virgule inversée. Enfin, nous écrivons le nom du fichier, « textfile.txt ».

Linux@linux:~/Desktop$ awk ‘{print NR, $0}’ textfile.txt

Comme vous pouvez le voir dans le résultat, le contenu du fichier est affiché avec des numéros de ligne qui montrent qu'il contient « 5 » lignes.

Afficher le montant total de données par ligne en utilisant NF

Dans cette section, nous allons montrer le nombre total d'éléments dans chaque ligne. Pour ce faire, nous utilisons la commande où nous écrivons d'abord « awk » puis suivons les mêmes étapes que dans la commande précédente, mais nous utilisons la variable « NF » après avoir écrit le paramètre « print ». Ensuite, nous fermons les accolades et les guillemets. Ensuite, nous écrivons le nom du fichier, « textfile.txt ».

Linux@linux:~/Desktop$ awk ‘{print NF}’ textfile.txt

Le nombre d'éléments présents dans le fichier est maintenant affiché dans la sortie. Les trois premières lignes contiennent « 1 » éléments. La quatrième ligne contient « 2 » éléments. Et la dernière ligne est vide dans le fichier. Par conséquent, elle affiche « 0 ».

Éliminer les lignes vides

Dans cette section, nous supprimons la ligne vide du fichier. Pour ce faire, nous utilisons la commande dans laquelle nous utilisons d'abord « awk ». Ensuite, nous utilisons « NF>0 » qui est la condition qui dit d'imprimer la ligne si le nombre d'éléments est supérieur à « 0 ». Sinon, la ligne ne s'affichera pas. Ensuite, nous utilisons la même procédure que celle que nous avons utilisée dans la section précédente.

Linux@linux:~/Desktop$ awk ‘NF>0 {print $0}’ textfile.txt

Comme la ligne cinq du fichier est vide, elle n'est pas affichée à l'écran. Au lieu de cela, seules les lignes contenant les articles ou éléments sont montrées. Par conséquent, les quatre premières lignes du fichier sont affichées car elles contiennent des données, tandis que la dernière ligne est supprimée car elle n'a pas de données.

Conclusion

Dans cet article, nous avons parlé de la façon d'utiliser la fonction « AWK NF » dans Ubuntu 20.04 pour imprimer les données ou les informations des fichiers texte. Dans la première étape, nous avons démontré comment fonctionne la fonction « AWK ». Dans la deuxième étape, nous avons créé un fichier texte sur le bureau et utilisé les différents paramètres de la fonction « AWK » tels que « NR » pour imprimer les lignes du fichier avec des numéros. Ensuite, nous avons utilisé « NF » pour compter le nombre d'éléments présents dans chaque ligne du fichier. Dans la dernière étape, nous avons supprimé la ligne vide du fichier en appliquant une condition à l'aide de « NF ».