Utiliser la commande « awk » pour imprimer la dernière colonne d'un fichier.
Parfois, il arrive une situation où nous n'avons pas besoin de lire le fichier complet, nous avons juste besoin d'une partie du fichier à afficher. Dans cette situation, nous essayons de trouver des moyens efficaces pour les obtenir sans parcourir tout le contenu du fichier. La commande "awk" est celle-ci.
La commande « AWK » est un utilitaire en ligne de commande utilisé dans Linux pour effectuer des recherches avec différents modèles et pour le traitement. C'est une commande qui permet à un développeur de coder de petites lignes de code efficaces sous forme d'instructions qui initient des modèles de texte utilisés pour effectuer des recherches dans chaque partie d'un document. Ainsi, c'est également une commande largement utilisée pour le traitement de texte.
Avec l'aide de la commande "awk", un programmeur peut extraire des données et des morceaux d'un texte spécifique en fonction du motif fourni à la commande. La commande AWK peut scanner et rechercher des fichiers ligne par ligne, distribuer et partitionner chaque ligne passée en entrée en champs, comparer et faire correspondre les champs avec les lignes d'entrée, et effectuer les instructions spécifiées par le programmeur sur les lignes correspondantes. Les commandes AWK peuvent être utilisées pour la production de rapports dans des formats spécifiques et pour modifier des données à l'intérieur des fichiers.
Syntax :
Voici la syntaxe de la commande AWK :
awk '{action}' your_file_name.txtDans cette commande, le paramètre « action » dans la syntaxe est utilisé pour définir l'action que notre commande devra effectuer. Après cela, nous passerons le nom de notre fichier en tant que paramètre sur lequel nous allons opérer.
Exemple n° 1 :
Dans cet exemple, nous allons essayer d'imprimer la nième ou la dernière colonne du fichier en utilisant la commande awk. Créons d'abord un nouveau fichier qui contient des données relatives aux employés. Pour créer un nouveau fichier, nous exécuterons la commande affichée ci-dessous:
linux@linux-VirtualBox:~$ touch employee.txtAprès avoir exécuté la commande ci-dessus, un nouveau fichier sera créé dans notre répertoire personnel. Il n'est pas nécessaire de créer un fichier dans le répertoire personnel, vous pouvez le créer n'importe où sur votre système. Maintenant, nous allons vérifier si le fichier a été créé ou non. Pour cela, nous allons simplement vérifier le répertoire personnel. Comme indiqué dans l'extrait ci-dessous, nous avons créé un nouveau fichier nommé employee.txt.
Maintenant, nous allons ajouter du contenu au fichier en utilisant un bloc-notes, comme montré dans l'extrait ci-dessous. Nous avons ajouté les données de cinq employés qui incluent le nom, le poste et le salaire de l'employé. Les données sont affichées ci-dessous et sont enregistrées dans le fichier "employee.txt".
Name designation salary
Jhone Manager $142
Rick Assistant $543
Linda Designer $148
Alex Proj Manager $342Maintenant, le fichier est créé avec succès avec le contenu et pour obtenir la dernière colonne du fichier en utilisant la commande awk. Pour cela, nous allons exécuter la commande mentionnée ci-dessous :
linux@linux-VirtualBox:~$ awk ‘{print $NF}’ employee.txtDans la commande ci-dessus, nous avons passé l'instruction print ainsi que le mot-clé $NF qui signifie que la commande awk indiquera au compilateur d'imprimer $NF, qui indique le n-ième champ du fichier. Le dernier “employee.txt” est le nom du fichier dont la dernière colonne sera imprimée. En appuyant sur la touche Entrée, nous exécuterons la commande sur laquelle la sortie affichée ci-dessous est générée sur le terminal, où le salaire des employés est affiché.
salary
$142
$543
$148
$342Exemple n° 2 :
Dans cet exemple, nous allons lire la dernière colonne du fichier, mais cette fois, nous utilisons une autre méthode qui est principalement utilisée lorsque le nombre de colonnes est connu de l'utilisateur. Maintenant, créons d'abord un nouveau fichier qui contient les données de cinq étudiants. Il comprend le nom des étudiants, leurs classes et les notes qu'ils ont obtenues.
linux@linux-VirtualBox:~$ nano student.txtLorsque nous exécutons la commande ci-dessus, cela créera un nouveau fichier et l'ouvrira automatiquement dans un éditeur de texte. Maintenant, nous allons ajouter les données des étudiants dans le fichier et en appuyant sur « Ctrl + x ». Nous allons enregistrer le fichier après avoir ajouté le contenu. Dans notre cas, nous avons ajouté les données de cinq étudiants. En sauvegardant le fichier, nous passerons à notre objectif principal qui est d'imprimer la dernière colonne du fichier. Voici le contenu du fichier « student.txt ».
Name class marks
jhone gradeC 154
Rick gradeA 124
Linda gradeB 144
Alex gradeA 122Maintenant, nous allons exécuter la commande awk pour imprimer la dernière colonne du fichier. Supposons cette fois que nous connaissons les colonnes du fichier et que nous voulons imprimer la dernière colonne. Pour cela, nous utiliserons la commande awk accompagnée du numéro de colonne qui sera affiché sur le terminal. Comme nous savons qu'il n'y a que trois colonnes dans notre fichier, qui sont le nom des étudiants, leurs classes et les notes. Pour imprimer la dernière colonne, nous allons exécuter la commande présentée ci-dessous :
linux@linux-VirtualBox:~$ awk ‘{print $3}’ student.txtDans cette commande, nous avons passé « $3 » avec la commande print, ce qui signifie qu'« awk » va indiquer au compilateur d'imprimer la troisième colonne du fichier nommé « student.txt ». Lorsque nous exécutons cette commande, elle affichera la sortie suivante dans laquelle les notes des étudiants sont imprimées. Nous pouvons également comparer la sortie avec l'extrait du fichier affiché ci-dessus. Le fichier ne contient que trois colonnes et la dernière colonne du fichier contient les notes des étudiants. Cette commande peut être utilisée pour imprimer n'importe quelle colonne du fichier ; elle n'est pas seulement spécifiée pour imprimer la dernière colonne. En changeant le signe « $3 » en « $2 », nous pouvons imprimer la deuxième colonne. Après avoir exécuté la commande ci-dessus, nous obtiendrons la sortie affichée ci-dessous.
Marks
154
124
144
122Conclusion
Nous avons étudié une commande "awk" qui est largement utilisée pour accéder directement au contenu du fichier dont on a besoin. Ensuite, nous avons mis en œuvre plusieurs exemples pour lire la dernière colonne spécifiée des fichiers en utilisant la commande awk. Vous pouvez réaliser plus d'exemples pour mieux comprendre comment la commande awk peut être utilisée.
