Awk

Comment imprimer la première colonne ou la dernière colonne ou les deux à l'aide de 'awk'

Comment imprimer la première colonne ou la dernière colonne ou les deux à l'aide de 'awk'

La commande 'awk' de Linux est un utilitaire puissant pour différentes opérations sur des fichiers texte telles que la recherche, le remplacement et l'impression. Il est facile à utiliser avec des données tabulaires car il divise automatiquement chaque ligne en champs ou en colonnes en fonction du séparateur de champs. Lorsque vous travaillez avec un fichier texte contenant des données tabulaires et que vous souhaitez imprimer les données d'une colonne particulière, la commande 'awk' est la meilleure option. Dans ce tutoriel, nous allons vous montrer comment imprimer la première colonne et/ou la dernière colonne d'une ligne ou d'un fichier texte.

Imprimer la première colonne et/ou la dernière colonne d'une sortie de commande

De nombreuses commandes Linux telles que la commande 'ls' génèrent des sorties tabulaires. Ici, nous allons vous montrer comment imprimer la première colonne et/ou la dernière colonne à partir du résultat de la commande 'ls -l'.

Exemple 1 : imprimer la première colonne d'une sortie de commande

La commande 'awk' suivante imprimera la première colonne de la sortie de la commande 'ls -l'.

$ ls -l
$ ls -l | awk ' print $1 '

La sortie suivante sera produite après l'exécution des commandes ci-dessus.

Exemple 2 : imprimer la dernière colonne d'une sortie de commande

La commande 'awk' suivante imprimera la dernière colonne de la sortie de la commande 'ls -l'.

$ ls -l
$ ls -l | awk ' print $NF '

La sortie suivante sera produite après l'exécution des commandes ci-dessus.

Exemple 3 : imprimer les première et dernière colonnes d'une sortie de commande

La commande 'awk' suivante imprimera les première et dernière colonnes de la sortie de la commande 'ls -l'.

$ ls -l
$ ls -l | awk ' print $1,  $NF '

La sortie suivante sera produite après l'exécution des commandes ci-dessus.

Imprimer la première colonne et/ou la dernière colonne d'un fichier texte

Ici, nous allons vous montrer comment utiliser la commande 'awk' pour imprimer la première colonne et/ou la dernière colonne d'un fichier texte.

Créer un fichier texte

Pour suivre ce tutoriel, créez un fichier texte nommé les clients.SMS avec le contenu suivant. Le fichier contient trois types de données client : nom avec identifiant, e-mail et numéro de téléphone. Le caractère de tabulation (\t) est utilisé pour séparer ces valeurs.

Nom Courriel Téléphone
Jonathon Bing - 1001 [email protégé] 01967456323
Michael Jackson - 2006 [email protégé] 01756235643
Janifer Lopez - 3029 [email protégé] 01822347865
John Abraham - 4235 j[email protected] 01590078452
Mir Sabbir - 2756 [email protégé] 01189523978

Exemple 4 : Imprimer la première colonne d'un fichier sans utiliser de séparateur de champs

Si aucun séparateur de champ n'est utilisé dans la commande 'awk', un espace est utilisé comme séparateur de champ par défaut. La commande 'awk' suivante imprimera la première colonne en utilisant le séparateur par défaut.

$ clients chats.SMS
$ awk 'print $1' clients.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. Notez que la sortie affiche uniquement le prénom du client car l'espace est appliqué comme séparateur de champ. La solution à ce problème est montrée dans l'exemple suivant.

Exemple 5 : Imprimer la première colonne d'un fichier avec un délimiteur

Ici, \t est utilisé comme séparateur de champs pour imprimer la première colonne du fichier. L'option '-F' est utilisée pour définir le séparateur de champ.

$ clients chats.SMS
$ awk -F '\t' 'print $1' clients.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. Le contenu du fichier est divisé en trois colonnes basées sur \t. Par conséquent, le nom et l'identifiant du client sont imprimés dans la première colonne. Si vous souhaitez imprimer le nom du client sans l'identifiant, passez à l'exemple suivant.


Si vous souhaitez imprimer le nom du client sans l'identifiant, vous devez utiliser '-' comme séparateur de champ. La commande 'awk' suivante imprimera le nom du client uniquement dans la première colonne.

$ clients chats.SMS
$ awk -F '-' 'print $1' clients.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La sortie comprend les noms complets des clients sans leurs identifiants.

Exemple 6 : Imprimer la dernière colonne d'un fichier

La commande 'awk' suivante imprimera la dernière colonne de clients.SMS. Comme aucun séparateur de champs n'est utilisé dans la commande, l'espace sera utilisé comme séparateur de champs.

$ clients chats.SMS
$ awk 'print $NF' clients.SMS

La sortie suivante sera produite après l'exécution des commandes ci-dessus. La dernière colonne contient les numéros de téléphone, comme indiqué dans la sortie.

Exemple 7 : Imprimer les première et dernière colonnes d'un fichier

La commande 'awk' suivante imprimera les première et dernière colonnes de clients.SMS. Ici, la tabulation (\t) est utilisée comme séparateur de champs pour diviser le contenu en colonnes. Ici, la tabulation (\t) est utilisée comme séparateur pour la sortie.

$ clients chats.SMS
$ awk -F "\t"  'print $1 "\t"  $NF' clients.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Le contenu est divisé en trois colonnes par \t; la première colonne contient le nom et l'identifiant du client et la deuxième colonne contient le numéro de téléphone. Les première et dernière colonnes sont imprimées en utilisant \t comme séparateur.

Conclusion

La commande 'awk' peut être appliquée de différentes manières pour obtenir la première colonne et/ou la dernière colonne à partir de n'importe quelle sortie de commande ou de données tabulaires. Il est important de noter qu'un séparateur de champ est requis dans la commande, et s'il n'est pas fourni, l'espace est utilisé.

Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...
Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...
Comment afficher la superposition OSD dans les applications et jeux Linux en plein écran
Jouer à des jeux en plein écran ou utiliser des applications en mode plein écran sans distraction peut vous couper des informations système pertinente...