'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 passeMaryland. 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.