Sed retirer les espaces

Sed retirer les espaces
La suppression des espaces blancs dans des documents est une étape de formatage essentielle qui est nécessaire pour améliorer la disposition globale d'un texte et s'assurer que les données sont propres et bien rangées. Il aide à stocker uniquement les données requises et à se débarrasser des espaces de tête et de fin inutiles. Voici quelques scénarios où vous devrez peut-être supprimer les espaces blancs:
  • Pour reformater le code source
  • Pour nettoyer les données
  • Pour simplifier la sortie de ligne de commande

Si nous parlons de principaux espaces blancs, ils sont relativement faciles à repérer car ils sont au début du texte. Cependant, il n'est pas facile de repérer les espaces blancs. Il en va de même avec des espaces doubles qui sont également parfois difficiles à repérer. Tout devient plus difficile lorsque vous avez besoin de supprimer tous ces espaces blancs et de fin d'un document contenant des milliers de lignes.

Pour supprimer les espaces blancs de votre document, vous pouvez utiliser divers outils tels que AWK, SED, Cut et TR. Dans certains autres articles, nous avons discuté de l'utilisation de AWK pour éliminer les espaces blancs. Dans cet article, nous discuterons de l'utilisation de SED pour éliminer les espaces blancs des données.

Vous apprendrez à utiliser SED pour:

  • Retirer tous les espaces blancs
  • Retirer les espaces blancs de tête
  • Retirer les espaces de fuite
  • Retirez les espaces blancs de tête et de fin
  • Remplacer plusieurs espaces par un seul espace

Nous exécuterons les commandes sur Ubuntu 20.04 FOCAL FOSSA. Vous pouvez également exécuter les mêmes commandes sur d'autres distributions Linux. Nous utiliserons l'application de terminal Ubuntu par défaut pour exécuter les commandes. Pour ouvrir le terminal, utilisez le raccourci clavier Ctrl + Alt + T.

Qu'est-ce que SED

SED (signifie Stream Editor) est un utilitaire très puissant et pratique dans Linux qui nous permet d'effectuer des manipulations de texte de base sur les flux d'entrée. Ce n'est pas un éditeur de texte, mais il aide à manipuler et à filtrer le texte. Il reçoit les flux d'entrée et le modifie en fonction des instructions de l'utilisateur, puis imprime le texte transformé en écran.

Avec SED, vous pouvez:

  • Sélectionnez le texte
  • Texte de recherche
  • Insérer le texte
  • Remplacer le texte
  • Supprimer le texte

Utilisation de SED pour supprimer les espaces blancs

Nous utiliserons la syntaxe suivante pour éliminer les espaces blancs du texte:

S / Regexp / Remplacement / Flags

  • s /: est expression de substitution
  • Regexp: est une expression régulière à correspondre
  • remplacement: est la chaîne de remplacement
  • drapeaux: Nous n'utiliserons que le drapeau «G» pour permettre la substitution à l'échelle mondiale sur chaque ligne

Expressions régulières

Certaines des expressions régulières que nous utiliserons ici sont:

  • ^ correspond au début de la ligne
  • $ allumettes la fin de la ligne
  • + correspond à une ou plusieurs occurrences du personnage précédent
  • * correspond à zéro ou plus d'occurrences du personnage précédent.

À des fins de démonstration, nous utiliserons l'exemple de fichier suivant nommé «TestFile».

Afficher tous les espaces blancs dans un fichier

Pour trouver tous les espaces blancs de votre fichier, tuyau la commande de la commande Cat vers la commande tr comme ceci:

$ Cat TestFile | tr "" "*" | tr "\ t" "&"

Cette commande remplace tous les espaces blancs de votre fichier par (*) symbole, ce qui facilite la repérer tous les espaces blanc.

Dans la capture d'écran suivante, vous pouvez voir que les espaces blancs sont remplacés par * symbole.

Retirez tous les espaces blancs (y compris les espaces et les onglets)

Dans certains cas, vous devez supprimer tous les espaces des données, je.e. Diriger, traîner et les espaces blancs entre les textes. La commande suivante supprimera tous les espaces blancs du «TestFile».

$ Cat TestFile | sed -r 's / \ s + // g'

Note: SED ne modifie vos fichiers que si vous enregistrez la sortie dans le fichier.

Sortir:

Après avoir exécuté la commande ci-dessus, la sortie suivante est apparue, ce qui montre que tous les espaces blancs ont été supprimés du texte.

Vous pouvez également utiliser la commande suivante pour vérifier que tous les espaces blancs ont été supprimés.

$ Cat TestFile | sed -r 's / \ s + // g' | tr "" "*" | tr "\ t" "&"

De la sortie, vous pouvez voir que ce n'est pas un symbole (*) qui signifie que tous les espaces blancs ont été supprimés.

Pour supprimer tous les espaces blancs mais uniquement d'une ligne spécifique (disons la ligne numéro 2), vous pouvez utiliser la commande suivante:

$ Cat TestFile | sed -r '2s / \ s + // g'

Retirez tous les principaux espaces (y compris les espaces et les onglets)

Pour supprimer tous les espaces blancs du début de chaque ligne (principaux espaces blancs), utilisez la commande suivante:

$ Cat TestFile | sed 's / ^ [\ t] * //'

Sortir:

La sortie suivante est apparue après l'exécution de la commande ci-dessus, qui montre que tous les principaux espaces ont été supprimés du texte.

Vous pouvez également utiliser la commande suivante pour vérifier que tous les principaux espaces blancs ont été supprimés:

$ Cat TestFile | sed 's / ^ [\ t] * //' | tr "" "*" | tr "\ t" "&"

De la sortie, vous pouvez voir qu'il n'y a pas de symbole (*) au début des lignes qui vérifie que tous les principaux espaces sont supprimés.

Pour supprimer les espaces blancs principaux de seulement une ligne spécifique (disons la ligne numéro 2), vous pouvez utiliser la commande suivante:

$ Cat TestFile | sed '2s / ^ [\ t] * //'

Retirez tous les espaces de fin (y compris les espaces et les onglets)

Pour supprimer tous les espaces blancs de l'extrémité de chaque ligne (espaces blancs), utilisez la commande suivante:

$ Cat TestFile | sed 's / [\ t] * $ //'

Sortir:

La sortie suivante est apparue après avoir exécuté la commande ci-dessus, qui montre que tous les espaces de fuite ont été supprimés du texte.

Vous pouvez également utiliser la commande suivante pour vérifier que tous les espaces de fin ont été supprimés.

$ Cat TestFile | sed 's / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

De la sortie, vous pouvez voir qu'il n'y a pas de symbole (*) à la fin des lignes qui vérifie que tous les espaces de fuite sont supprimés.

Pour supprimer les espaces de fuite de seulement une ligne spécifique (disons la ligne numéro 2), vous pouvez utiliser la commande suivante:

$ Cat TestFile | sed '2s / [\ t] * $ //'

Retirez les espaces blancs de tête et de fin

Pour supprimer tous les espaces blancs du début et de la fin de chaque ligne (i.e. À la fois des espaces blancs de tête et de fin), utilisez la commande suivante:

$ Cat TestFile | sed 's / ^ [\ t] * //; s / [\ t] * $ //'

Sortir:

La sortie suivante est apparue après l'exécution de la commande ci-dessus, qui montre que les espaces blancs de tête et de fin ont été supprimés du texte.

Vous pouvez également utiliser la commande suivante pour vérifier que les espaces blancs d'attaque et de fin ont été supprimés.

$ Cat TestFile | sed 's / ^ [\ t] * //; s / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

Depuis la sortie, vous pouvez voir qu'il n'y a pas de symbole (*) au début ou à la fin des lignes qui vérifie que tous les espaces blancs principaux et traînants sont supprimés.

Pour supprimer à la fois les espaces blancs principaux et traînants à partir d'une ligne spécifique (disons la ligne numéro 2), vous pouvez utiliser la commande suivante:

$ Cat TestFile | sed '2s / ^ [\ t] * //; 2s / [\ t] * $ //'

Remplacer plusieurs espaces blancs par un seul espace

Dans certains cas, il y a plusieurs espaces blancs au même endroit dans le fichier, mais vous n'avez besoin que d'un seul espace blanc. Vous pouvez le faire en remplaçant ces multiples espaces par un seul espace en utilisant SED.

La commande suivante remplacera tous les multiples espaces par un seul espace blanc de chaque ligne du «TestFile».

$ Cat TestFile | sed 's / [] \ + / g'

Sortir:

La sortie suivante est apparue après l'exécution de la commande ci-dessus, qui montre que les multiples espaces ont été remplacés par l'espace unique.

Vous pouvez également utiliser la commande suivante pour vérifier si plusieurs espaces blancs sont remplacés par un seul espace:

$ Cat TestFile | sed 's / [] \ + / g' | tr "" "*" | tr "\ t" "&"

De la sortie, vous pouvez voir le symbole unique (*) à chaque endroit qui vérifie que toutes les occurrences de plusieurs espaces sont remplacés par un seul espace.

Donc, il s'agissait de supprimer les espaces blancs de vos données à l'aide de SED. Dans cet article, vous avez appris à utiliser SED pour supprimer tous les espaces blancs de vos données, supprimer uniquement l'espace de leader ou de traînée, et supprimer à la fois l'espace blanc de tête et de fin. Vous avez également appris à remplacer plusieurs espaces par un seul espace. Il vous sera maintenant facile de supprimer les espaces blancs d'un fichier contenant des centaines ou des milliers de lignes.