sed

Sed Supprimer les espaces

Sed Supprimer les espaces
La suppression des espaces blancs dans les documents est une étape de mise en forme essentielle qui est nécessaire pour améliorer la mise en page globale d'un texte et pour garantir que les données sont propres et ordonnées. Il permet de stocker uniquement les données requises et de se débarrasser des espaces de début et de fin inutiles. Voici quelques scénarios dans lesquels vous devrez peut-être supprimer les espaces :

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

Pour supprimer les espaces de votre document, vous pouvez utiliser divers outils tels que awk, sed, cut et tr. Dans d'autres articles, nous avons discuté de l'utilisation de awk pour supprimer les espaces. Dans cet article, nous discuterons de l'utilisation de sed pour supprimer les espaces blancs des données.

Vous apprendrez à utiliser sed pour :

Nous exécuterons les commandes sur Ubuntu 20.04 Fosse Focale. Vous pouvez également exécuter les mêmes commandes sur d'autres distributions Linux. Nous utiliserons l'application Ubuntu Terminal 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 éditeur de flux) est un utilitaire très puissant et pratique sous 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 les édite selon les instructions de l'utilisateur, puis imprime le texte transformé à l'écran.

Avec sed, vous pouvez :

Utiliser Sed pour supprimer les espaces

Nous utiliserons la syntaxe suivante pour supprimer les espaces du texte :

s/ REGEXP/remplacement/drapeaux

Expressions régulières

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

À des fins de démonstration, nous utiliserons l'exemple de fichier suivant nommé "testfile".

Afficher tous les espaces dans un fichier

Pour trouver tous les espaces dans votre fichier, dirigez la sortie de la commande cat vers la commande tr comme ceci :

$ cat fichier de test | tr " " "*" | tr "\t" "&"

Cette commande remplace tous les espaces blancs de votre fichier par le symbole (*), ce qui permet de repérer plus facilement tous les espaces blancs, qu'il s'agisse d'espaces blancs uniques, multiples, de début ou de fin.

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

Supprimer tous les espaces (y compris les espaces et les tabulations)

Dans certains cas, vous devez supprimer tous les espaces blancs des données, je.e. le début, la fin et les espaces entre les textes. La commande suivante supprimera tous les espaces du "testfile".

$ cat fichier de test | sed -r 's/\s+//g'

Noter: Sed ne modifie pas vos fichiers à moins que vous n'enregistriez la sortie dans le fichier.

Production:

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

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

$ cat fichier de test | sed -r 's/\s+//g' | tr " " "*" | tr "\t" "&"

À partir de la sortie, vous pouvez voir qu'il n'y a pas de symbole (*), ce qui signifie que tous les espaces ont été supprimés.

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

$ cat fichier de test | sed -r '2s/\s+//g'

Supprimer tous les espaces blancs (y compris les espaces et les tabulations)

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

$ cat fichier de test | sed 's/^[ \t]*//'

Production:

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

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

$ cat fichier de test | sed 's/^[ \t]*//' | tr " " "*" | tr "\t" "&"

À partir 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 espaces blancs de début sont supprimés.

Pour supprimer les espaces au début d'une seule ligne spécifique (disons la ligne numéro 2), vous pouvez utiliser la commande suivante :

$ cat fichier de test | sed '2s/^[ \t]*//'

Supprimer tous les espaces de fin (y compris les espaces et les tabulations)

Pour supprimer tous les espaces à la fin de chaque ligne (espaces de fin), utilisez la commande suivante :

$ cat fichier de test | sed 's/[ \t]*$//'

Production:

La sortie suivante est apparue après l'exécution de la commande ci-dessus, qui montre que tous les espaces de fin 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 fichier de test | sed 's/[ \t]*$//' | tr " " "*" | tr "\t" "&"

À partir 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 fin sont supprimés.

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

$ cat fichier de test | sed '2s/[ \t]*$//'

Supprimer les espaces blancs de début et de fin

Pour supprimer tous les espaces au début et à la fin de chaque ligne (i.e. espaces de début et de fin), utilisez la commande suivante :

$ cat fichier de test | sed 's/^[ \t]*//;s/[ \t]*$//'

Production:

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

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

$ cat fichier de test | sed 's/^[ \t]*//;s/[ \t]*$//' | tr " " "*" | tr "\t" "&"

À partir de 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 de début et de fin sont supprimés.

Pour supprimer à la fois les espaces blancs de début et de fin d'une seule ligne spécifique (disons la ligne numéro 2), vous pouvez utiliser la commande suivante :

$ cat fichier de test | sed '2s/^[ \t]*//;2s/[ \t]*$//'

Remplacer plusieurs espaces blancs par un seul espace blanc

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

La commande suivante remplacera tous les espaces blancs multiples par un seul espace blanc de chaque ligne du "fichier test".

$ cat fichier de test | sed 's/[ ]\+/ /g'

Production:

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

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

$ cat fichier de test | sed 's/[ ]\+/ /g' | tr " " "*" | tr "\t" "&"

À partir de la sortie, vous pouvez voir le symbole (*) unique à chaque endroit qui vérifie que toutes les occurrences des espaces blancs multiples sont remplacées par un seul espace blanc.

Donc, il s'agissait de supprimer les espaces de vos données à l'aide de sed. Dans cet article, vous avez appris à utiliser sed pour supprimer tous les espaces de vos données, supprimer uniquement les espaces de début ou de fin et supprimer les espaces de début et de fin. Vous avez également appris à remplacer plusieurs espaces par un seul espace. Il vous sera désormais facile de supprimer les espaces d'un fichier contenant des centaines ou des milliers de lignes.

Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...