Awk Trim Whitespace

Awk Trim Whitespace

«Lorsque vous travaillez dans l'industrie informatique, vous pouvez rencontrer des milliers de fichiers contenant de nombreuses lignes de code ou d'énormes quantités de données. Bien que les données elle-même puissent être un facteur contribuant à la taille du fichier, les espaces blancs composent également considérablement de la taille. Avec l'augmentation de la taille du fichier, vous pouvez rencontrer des problèmes lors du stockage de ces fichiers ou de les transférer à vos collègues. Donc, il est impératif que vous les supprimez pour mieux contrôler la taille du fichier, mais d'abord, jetons un coup d'œil pour les comprendre en détail."

Qu'est-ce qu'un espace blanc?

Whitespace est l'espace entre deux caractères imprimables. Il peut être soit dans une ligne horizontale, soit des lignes de séparation verticalement. En d'autres termes, l'espace entre les mots, toutes les lignes vierges, la balise NBSP ainsi que les onglets peuvent être considérées comme des espaces blancs. Les espaces vides au début et / ou à la fin des lignes sont également considérés comme des espaces blancs.

Afin de préserver la santé mentale des données, les programmeurs finissent par écrire du code qui est responsable de la suppression de ces espaces lors du stockage des données. Les cas suivants peuvent provoquer la suppression des espaces blancs:

  • Reformatting / refactoring code source
  • Nettoyer les données
  • Simplifiez toutes les sorties de ligne de commande
  • Réduire la taille du fichier

Il est possible de supprimer manuellement les espaces s'il y a une poignée de lignes de données dans le fichier. Mais, lorsque le fichier contient des centaines de lignes, il peut devenir très difficile de les retirer manuellement. Pour surmonter cela, nous pouvons utiliser les nombreux outils de ligne de commande à notre disposition, E.g., sed, coupé, tr et awk. Parmi ceux-ci, awk est la commande la plus puissante. Explorons-le plus loin.

Qu'est-ce que Awk?

AWK est un langage de script très puissant utilisé pour la manipulation des données et la génération de rapports. La commande awk est l'abréviation des premières initiales de chacun des trois créateurs Aho, Weinberger et Kernighan. AWK permet à ses utilisateurs de définir des variables, des chaînes, des fonctions numériques et des opérateurs arithmétiques, ainsi que de créer des rapports formatés, entre autres.

Dans cet article, nous explorerons en utilisant la commande awk pour la coupe des espaces blancs de vos fichiers. Après avoir parcouru le guide, vous saurez comment:

  • Coupez tous les espaces blancs dans n'importe quel fichier.
  • Coupez les espaces blancs et traînants.
  • Coupez tous les principaux espaces blancs.
  • Coupez tous les espaces de traîne.
  • Remplacer plusieurs espaces par un seul espace.

Les scénarios démontrés dans cet article sont réalisés sur Ubuntu 22.04 Système de méduses Jammy. Ces commandes sont également exécutables sur d'autres distributions.

Exemple de fichier

Pour ce guide, nous utiliserons un fichier texte nommé «TSA.SMS". Les contenus de l'espace de place de l'exemple de fichier ressemblent à ceci:

Maintenant, commençons.

Comment afficher tous les espaces blancs de votre fichier?

Pour mieux comprendre les espaces blancs, voyons d'abord comment nous pouvons identifier les espaces blancs dans un fichier. Pour cela, vous devez tuer la sortie de la commande CAT via la commande tr en tant que telle:

$ CAT ASD.txt | Tr “” “*” | tr "\ t" "&"

Cette commande remplacera les espaces par des astérisques et des espaces d'onglets par le "&" symbole. Dès que cela s'exécute, vous pourrez voir tous les espaces blancs de votre fichier en tant que tel:

Explorons maintenant l'utilisation de la commande awk.

Tailler tous les espaces blancs

Pour notre premier scénario, nous supprimons tous les espaces blancs de notre exemple de fichier. Pour y parvenir, nous devons tuer la sortie de la commande Cat sur la commande awk en tant que tel:

$ CAT ASD.txt | awk 'gsub (/ /, ""); imprimer '

Ici:

  • GSUB signifie la substitution globale, utilisé pour substituer les espaces blancs.
  • Les doubles slashes avant (/ /) représentent l'espace.
  • "" Les doubles guillemets sont utilisés pour couper les cordes.

Ainsi, avec la commande ci-dessus, nous substituons tous les espaces blancs (/ /) par rien (""). Avec la sortie de la commande ci-dessus, vous pouvez voir que tous les espaces blancs ont été supprimés.

Coupe-coups et espaces blancs de tête de votre document

Depuis la dernière sortie, nous pouvons voir que les espaces blancs ont été supprimés, laissant des onglets et des lignes vides. Nous pouvons mettre à jour la commande utilisée dans le dernier exemple pour prendre soin des espaces blancs principaux et traînants ainsi que des onglets en tant que tels:

$ CAT ASD.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); imprimer '

En utilisant des éléments de la commande précédente, vous pouvez vérifier que les espaces blancs de tête et de fin ont été supprimés.

$ CAT ASD.txt | awk 'sub (/ ^ [\ t] + | [\ t] /, ""); imprimer '| tr "" "*" | tr "\ t" "&"

Voici les commandes que vous pouvez utiliser pour supprimer ces espaces séparément, respectivement.

En supprimant uniquement les espaces blancs

$ CAT ASD.txt | awk 'sub (/ ^ [\ t] + /, ""); imprimer '

En supprimant uniquement les espaces de fin

$ CAT ASD.txt | awk 'sub (/ [\ t] + $ /, ""); imprimer '

Bonus: remplacez plusieurs espaces par un seul espace

Afin de remplacer plusieurs espaces par un seul ou rien, vous pouvez utiliser la commande awk en tant que tel:

$ CAT ASD.txt | awk 'gsub (/ [] + /, ””); imprimer '

En utilisant la commande tr, nous pouvons voir que les espaces blancs ont été supprimés.

Conclusion

Ainsi, avec ces démonstrations, nous avons exploré diverses façons où nous pouvons utiliser la commande awk pour couper les espaces blancs. Les supprimer pourrait être utile pour diverses raisons.

Si vous rencontrez des problèmes à l'utiliser, n'hésitez pas à nous contacter en utilisant la section des commentaires ci-dessous, et nous serons heureux de vous aider.