Awk

Comment analyser le fichier délimité par des tabulations à l'aide de 'awk'

Comment analyser le fichier délimité par des tabulations à l'aide de 'awk'

'tab' est utilisé comme séparateur dans le fichier délimité par des tabulations. Ce type de fichier texte est créé pour stocker divers types de données texte dans un format structuré.  Différents types de commandes existent sous Linux pour parser ce type de fichier.  La commande 'awk' est l'un des moyens d'analyser le fichier délimité par des tabulations de différentes manières. Les utilisations de la commande 'awk' pour lire le fichier délimité par des tabulations ont été montrées dans ce tutoriel.

Créez un fichier délimité par des tabulations :

Créer un fichier texte nommé utilisateurs.SMS avec le contenu suivant pour tester les commandes de ce tutoriel. Ce fichier contient le nom, l'e-mail, le nom d'utilisateur et le mot de passe de l'utilisateur.

utilisateurs.SMS

Nom                E-mail                        Nom d'utilisateur         Mot de passe
Maryland. Robin         [email protected]               robin89                563425
Nila Hasan         [e-mail protégé]                nila78                 245667
Mirza Abbas        [email protected]               mirza23                534788
Aornob Hasan       [email protected]         arnob45                778473
Nuhas Ahsan        [protégé par e-mail]               nuhas34                563452

Exemple-1 : Imprimer la deuxième colonne d'un fichier délimité par des tabulations à l'aide de l'option -F

La commande 'sed' suivante imprimera la deuxième colonne d'un fichier texte délimité par des tabulations. Ici le '-F' L'option permet de définir le séparateur de champs du fichier.

$ utilisateurs de chats.SMS
$ awk -F '\t' 'print $2' utilisateurs.SMS

La sortie suivante apparaîtra après l'exécution des commandes. La deuxième colonne du fichier contient les adresses e-mail de l'utilisateur, qui s'affichent en sortie.

Exemple-2 : Imprimer la première colonne d'un fichier délimité par des tabulations à l'aide de la variable FS

La commande 'sed' suivante imprimera la première colonne d'un fichier texte délimité par des tabulations. Ici, FS La variable ( Field Separator) est utilisée pour définir le séparateur de champs du fichier.

$ utilisateurs de chats.SMS
$ awk ' print $1 ' FS='\t' utilisateurs.SMS

La sortie suivante apparaîtra après l'exécution des commandes. La première colonne du fichier contient les noms des utilisateurs, qui s'affichent en sortie.

Exemple-3 : Imprimer la troisième colonne d'un fichier délimité par des tabulations avec formatage

La commande "sed" suivante imprimera la troisième colonne du fichier texte délimité par des tabulations avec le formatage en utilisant le FS variable et imprimer. Ici le FS variable est utilisée pour définir le séparateur de champs du fichier.

$ utilisateurs de chats.SMS
$ awk 'BEGINFS="\t" printf "%10s\n", $3' utilisateurs.SMS

La sortie suivante apparaîtra après l'exécution des commandes. La troisième colonne du fichier contient le nom d'utilisateur qui a été imprimé ici.

Exemple-4 : Imprimer les troisième et quatrième colonnes du fichier délimité par des tabulations à l'aide d'OFS

OFS (Output Field Separator) est utilisé pour ajouter un séparateur de champ dans la sortie. La commande 'awk' suivante divisera le contenu du fichier en fonction du séparateur tab(\t) et imprimera les 3e et 4e colonnes en utilisant l'onglet (\t) comme séparateur.

$ utilisateurs de chats.SMS
$ awk -F "\t" 'OFS="\t" print $3, $4 > ("output.txt")' utilisateurs.SMS
$ cat sortie.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Les 3e et 4e colonnes contiennent le nom d'utilisateur et le mot de passe, qui ont été imprimés ici.

Exemple-5 : Substituer le contenu particulier du fichier délimité par des tabulations

La fonction sub() est utilisée dans 'awk pour commander la substitution. La commande 'awk' suivante recherchera le numéro 45 et le remplacera par le numéro 90 si le numéro de recherche existe dans le fichier. Après la substitution, le contenu du fichier sera stocké dans la sortie.fichier txt.

$ utilisateurs de chats.SMS
$ awk  -F "\t"'sub(/45/,90);print' utilisateurs.txt > sortie.SMS
$ cat sortie.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Le résultat.txt affiche le contenu modifié après application de la substitution. Ici, le contenu de la 5ème ligne a été modifié et "arnob45" est remplacé par "arnob90".

Exemple-6 : Ajouter une chaîne au début de chaque ligne d'un fichier délimité par des tabulations

Dans ce qui suit, la commande 'awk', l'option '-F' est utilisée pour diviser le contenu du fichier en fonction de l'onglet (\t). OFS a utilisé pour ajouter une virgule (,) comme séparateur de champ dans la sortie. La fonction sub() est utilisée pour ajouter la chaîne '-→' au début de chaque ligne de la sortie.

$ utilisateurs de chats.SMS
$ awk -F "\t" 'OFS=",";sub(/^/, "---->");print $1,$2,$3' utilisateurs.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Chaque valeur de champ est séparée par une virgule (,) et une chaîne est ajoutée au début de chaque ligne.

Exemple-7 : Substituer la valeur d'un fichier délimité par des tabulations en utilisant la fonction gsub()

La fonction gsub() est utilisée dans la commande 'awk' pour la substitution globale. Toutes les valeurs de chaîne du fichier remplaceront l'endroit où le modèle de recherche correspond. La principale différence entre les fonctions sub() et gsub() est que la fonction sub() arrête la tâche de substitution après avoir trouvé la première correspondance, et la fonction gsub() recherche le modèle à la fin du fichier pour la substitution. La commande 'awk' suivante recherchera le mot 'nila' et 'Mira' globalement dans le fichier et remplacera toutes les occurrences par le texte, 'Nom invalide', où le mot recherché correspond.

$ utilisateurs de chats.SMS
$ awk  -F '\t' 'gsub(/nila|Mira/, "Nom invalide"); print' utilisateurs.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Le mot "nila" existe deux fois dans la 3e ligne du fichier qui a été remplacé par le mot "Nom invalide" dans la sortie.

Exemple-8 : Imprimer le contenu formaté à partir d'un fichier délimité par des tabulations

La commande 'awk' suivante imprimera les première et deuxième colonnes du fichier avec le formatage en utilisant printf. La sortie affichera le nom de l'utilisateur en mettant l'adresse e-mail entre parenthèses.

$ utilisateurs de chats.SMS
$ awk -F '\t' 'printf "%s(%s)\n", $1,$2' utilisateurs.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.

Conclusion

Tout fichier délimité par des tabulations peut être facilement analysé et imprimé avec un autre délimiteur en utilisant la commande 'awk'. Les façons d'analyser des fichiers délimités par des tabulations et d'imprimer dans différents formats ont été montrées dans ce didacticiel en utilisant plusieurs exemples. Les utilisations des fonctions sub() et gsub() dans la commande 'awk' pour substituer le contenu du fichier délimité par des tabulations sont également expliquées dans ce tutoriel. J'espère que ce tutoriel aidera les lecteurs à analyser facilement le fichier délimité par des tabulations après avoir correctement pratiqué les exemples de ce tutoriel.

Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...