Académique Documents
Professionnel Documents
Culture Documents
exemples
16 août 2021 GNU/LinuxDernière modification : 16 août 2021
sed (stream editor) est une commande linux puissante pour effectuer des
opérations de texte.
Il peut effectuer une manipulation de texte de base sur des fichiers et des
flux dʼentrée tels que des pipes. Avec SED, vous pouvez rechercher,
trouver et remplacer, insérer et supprimer des mots et des lignes. Il prend
en charge des expressions régulières de base et étendues qui vous
permettent de faire correspondre des modèles complexes.
Par exemple pour afficher toutes les deux 2 lignes dʼun fichier à partir de
la ligne 1 :
Pour supprimer toutes les lignes dʼun texte entre deux motifs, on
utilise le flag d (delete) avec la syntaxe suivante :
Par exemple pour supprimer les lignes entre les lignes avec I Traveled
(ligne 8) et I had (ligne 14), on utilise sed comme ceci :
sed est un outil très utile pour rechercher des motifs dans un texte.
Il est tout aussi puissant que la commande grep.
La syntaxe à utiliser est la suivante :
Par exemple pour chercher toutes les lignes commençant par une
tabulation puis suivi des chiffres de 10 à 19.
Ce qui dans notre cas fait ressortir les lignes de 10 à 19.
Ici on utilise des expressions régulières :
We'd wake up every morning and before I'd start each day
On peut aussi indiquer quelle occurrence dʼune ligne remplacer à travers
son numéro.
Par exemple pour remplacer la première occurrence utilisez /1, pour
remplacer la seconde occurrence utilisez /2, etc.
Dernier exemple, où lʼon supprime les numéros de lignes entre les deux
tabulations de notre fichier.
Toutefois à la fin de ce didacticiel, vous verrez que lʼon peut aussi
supprimer des lignes de texte avec sed.
Le problème ici est que le commentaire sʼajoute aussi dans les lignes
vides.
Pour ajouter du texte au début dʼune ligne mais PAS dans les lignes vides.
!s signifie non ligne vide.
Autre syntaxe possible pour viser les lignes vides avec le caractère s :
Il est tout à fait possible de combiner les deux drapeaux afin dʼinsérer du
texte avant et après :
sed '7d'
sed '1,10d'
sed '$d'