Awk

Awk Trim Whitespace

Awk Trim Whitespace
En tant que programmeur, vous devrez peut-être travailler avec différents fichiers pour stocker et manipuler des données. Une tâche de base de manipulation de fichiers consiste à supprimer les espaces blancs dans les fichiers. Les espaces blancs sont composés d'espaces, de lignes vides, de nbsp et de tabulations. Les programmeurs ont souvent besoin de supprimer les espaces blancs afin que seules les données nécessaires soient stockées et que les espaces blancs inutiles puissent être éliminés. Les espaces blancs peuvent être des espaces de début (au début de la ligne) ou de fin (à la fin de la ligne).

Les éléments suivants incluent certains scénarios dans lesquels la suppression des espaces peut être nécessaire :

Il est possible de supprimer les espaces manuellement si un fichier qui ne contient que quelques lignes. Mais, pour un fichier contenant des centaines de lignes, il sera alors difficile de supprimer tous les espaces manuellement. Il existe divers outils de ligne de commande disponibles à cet effet, notamment sed, awk, cut et tr. Parmi ces outils, awk est l'une des commandes les plus puissantes.

Qu'est-ce qu'Awk?

Awk est un langage de script puissant et utile utilisé dans la manipulation de texte et la génération de rapports. La commande awk est abrégée en utilisant les initiales de chacune des personnes (Aho, Weinberger et Kernighan) qui l'ont développée. Awk vous permet de définir des variables, des fonctions numériques, des chaînes et des opérateurs arithmétiques ; créer des rapports formatés ; et plus.

Cet article explique l'utilisation de la commande awk pour rogner les espaces blancs. Après avoir lu cet article, vous apprendrez à utiliser la commande awk pour effectuer les opérations suivantes :

Les commandes de cet article ont été exécutées sur un Ubuntu 20.04 Système Fossa Fossa. Cependant, les mêmes commandes peuvent également être exécutées sur d'autres distributions Linux. Nous utiliserons l'application Ubuntu Terminal par défaut pour exécuter les commandes de cet article. Vous pouvez accéder au terminal en utilisant le raccourci clavier Ctrl+Alt+T.

À des fins de démonstration, nous utiliserons le fichier d'exemple nommé « sample.SMS.” pour exécuter les exemples fournis dans cet article.

Afficher tous les espaces dans un fichier

Pour afficher tous les espaces présents dans un fichier, dirigez la sortie de la commande cat vers la commande tr, comme suit :

$ échantillon de chat.txt | tr " " "*" | tr "\t" "&"

Cette commande remplacera tous les espaces dans le fichier donné par le caractère (*). Après avoir entré cette commande, vous pourrez voir clairement où tous les espaces blancs (y compris les espaces blancs de début et de fin) sont présents dans le fichier.

Les caractères * dans la capture d'écran suivante montrent où tous les espaces sont présents dans le fichier exemple. Un seul * représente un seul espace.

Couper tous les espaces

Pour supprimer tous les espaces d'un fichier, dirigez la commande out of cat vers la commande awk, comme suit :

$ échantillon de chat.txt | awk ' gsub(/ /,""); imprimer '

La commande ci-dessus remplace tous les espaces (/ /) par rien ("").

Dans la capture d'écran suivante, vous pouvez voir que tous les espaces blancs, y compris les espaces blancs de début et de fin, ont été supprimés de la sortie.

Couper les espaces blancs en tête

Pour supprimer uniquement les espaces de début du fichier, dirigez la commande out of cat vers la commande awk, comme suit :

$ échantillon de chat.txt | awk ' sub(/^[ \t]+/, ""); imprimer '

La commande ci-dessus remplace un ou plusieurs espaces au début de la chaîne (^[ \t]+ ) par rien ("") pour supprimer les premiers espaces blancs.

Dans la capture d'écran suivante, vous pouvez voir que tous les espaces blancs principaux ont été supprimés de la sortie.

Vous pouvez utiliser la commande suivante pour vérifier que la commande ci-dessus a supprimé les premiers espaces :

$ échantillon de chat.txt | awk ' sub(/^[ \t]+/, ""); imprimer ' | tr " " "*" |
tr "\t" "&"

Dans la capture d'écran ci-dessous, il est clairement visible que seuls les premiers espaces ont été supprimés.

Couper les espaces blancs de fin

Pour supprimer uniquement les espaces de fin d'un fichier, dirigez la commande out of cat vers la commande awk, comme suit :

$ échantillon de chat.txt | awk ' sub(/[ \t]+$/, ""); imprimer '

La commande ci-dessus remplace un ou plusieurs espaces à la fin de la chaîne ([ \t]+ $) par rien ( "") pour supprimer les espaces de fin.

Vous pouvez utiliser la commande suivante pour vérifier que la commande ci-dessus a supprimé les espaces de fin :

$ échantillon de chat.txt | awk ' sub(/[ \t]+$/, ""); imprimer ' | tr " " "*" | tr "\t" "&"

À partir de la capture d'écran ci-dessous, il est clairement visible que les espaces blancs de fin ont été supprimés.

Couper les espaces blancs de début et de fin

Pour supprimer à la fois les espaces blancs de début et de fin d'un fichier, dirigez la commande out of cat vers la commande awk, comme suit :

$ échantillon de chat.txt | awk ' gsub(/^[ \t]+|[ \t]+$/, ""); imprimer '

La commande ci-dessus remplace à la fois les espaces de début et de fin (^[ \t]+ [ \t]+$) sans rien ("") pour les supprimer.

Pour déterminer si la commande ci-dessus a supprimé à la fois les espaces blancs de début et de fin dans le fichier, utilisez la commande suivante :

$ échantillon de chat.txt | awk ' gsub(/^[ \t]+|[ \t]+$/, ""); imprimer ' |
tr " " "*" | tr "\t" "&"

À partir de la capture d'écran ci-dessous, il est clairement visible que les espaces blancs de début et de fin ont été supprimés, et seuls les espaces blancs entre les chaînes restent.

Remplacer plusieurs espaces par un seul espace

Pour remplacer plusieurs espaces par un seul espace, dirigez la commande out of cat vers la commande awk, comme suit :

$ échantillon de chat.txt | awk ' gsub(/[ ]+/," "); imprimer '

Où:

La commande ci-dessus remplace plusieurs espaces blancs ([ ]+) par un seul espace blanc (" ").

Vous pouvez utiliser la commande suivante pour vérifier que la commande ci-dessus a remplacé les espaces multiples par les espaces :

$ échantillon de chat.txt | awk ' sub(/[ \t]+$/, ""); imprimer ' | | tr " " "*" | tr "\t" "&"

Il y avait plusieurs espaces dans notre exemple de fichier. Comme vous pouvez le voir, plusieurs espaces blancs dans l'exemple.txt ont été remplacés par un seul espace blanc à l'aide de la commande awk.

Pour couper les espaces dans uniquement les lignes contenant un caractère spécifique, comme une virgule, deux points ou un point-virgule, utilisez la commande awk avec le -F séparateur d'entrée.

Par exemple, ci-dessous est notre exemple de fichier qui contient des espaces dans chaque ligne.

Pour supprimer les espaces uniquement sur les lignes contenant une virgule (,), la commande serait la suivante :

$ chat échantillon1.txt | awk -F, '/,/gsub(/ /,""); imprimer'

Où (-F,) est le séparateur de champ d'entrée.

La commande ci-dessus ne supprimera et n'affichera que les espaces blancs des lignes contenant le caractère spécifié (,). Le reste des lignes ne sera pas affecté.

Conclusion

C'est tout ce que vous devez savoir pour supprimer les espaces dans vos données à l'aide de la commande awk. La suppression des espaces de vos données peut être nécessaire pour plusieurs raisons différentes. Quelle que soit la raison, vous pouvez facilement couper tous les espaces dans vos données à l'aide des commandes décrites dans cet article. Vous pouvez même couper les espaces blancs de début ou de fin, couper les espaces blancs de début et de fin et remplacer les espaces multiples par un seul espace avec la commande awk.

Moteurs de jeux gratuits et open source pour le développement de jeux Linux
Cet article couvrira une liste de moteurs de jeux gratuits et open source qui peuvent être utilisés pour développer des jeux 2D et 3D sur Linux. Il ex...
Tutoriel Shadow of the Tomb Raider pour Linux
Shadow of the Tomb Raider est le douzième ajout à la série Tomb Raider - une franchise de jeux d'action-aventure créée par Eidos Montréal. Le jeu a ét...
Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...