Académique Documents
Professionnel Documents
Culture Documents
SED est un éditeur de flux qui fonctionne sur une entrée de commandes ou des fichiers de texte.
L'option -f, permet de fournir un fichier script contenant les commandes à exécuter. Les autre options
permettent de choisir les opérations à exécuter.
La sortie de la commande est, par défaut, affichée à l'écran mais peut être redirigée, dans un fichier.
Pour réaliser ses opérations copiez le fichier /etc/passwd dans un fichier nommé cible.
3 I'd wake up every morning and before I'd start each day
15 So I wouldn't be alone
Sélectionner des lignes d’un fichier texte
Pour sélectionner du texte, on utilise le flag p (print).
Si l’on désire sélectionner des portions spécifiques de texte avec différents intervalles de lignes, on
peut utiliser l’option -e. Cela permet de combiner plusieurs sélections de texte.
Par exemple pour afficher les lignes de 1 à 4 et de 5 à 10 d’un fichier : sed -n -e '1,5 p' -e '8,10p' cible
Le deuxième numéro dit SED Quelles lignes après la ligne de départ que nous voulons voir.
Le numéro 2 signifie chaque deuxième ligne, 3 signifie chaque troisième ligne, etc. Par exemple la
commande sed -n '1~2p' cible affiche toutes les deux 2 lignes d’un fichier nommé cible à partir de la
ligne 1 et la commande sed -n '1~3p' cible affiche toutes les 3 lignes.
Il est aussi possible de sélectionner des lignes d'un fichier texte en encadrant ce dernier par deux
motifs. Par exemple sed -n '/root/,/bin/p' cible
Supprimer un texte
Le flag d(flag) permet de supprimer des lignes d’un fichier. Il est possible d’indiquer à la commande
les numéros des lignes à supprimer ou encadrer ces lignes par des motifs. La syntaxe est :
Par exemple :
sed -n "/[1-9][0-9][0-9][0-9]/p" cible affiche toutes les lignes contenant un chiffre entre 1000 et 1999.
Bien sûr, en reprenant les explications précédentes, il est plus rapide d’afficher par numéro de lignes :
Le s indique une substitution. Le premier paramètre est la chaîne à et le second indique le texte de
remplacement.
Par exemple ici, on remplace le mot Ubuntu par Debian : echo "J'aime Ubuntu"| sed
's/Ubuntu/Debian/g'
Pour rendre sed insensible à la casse, on ajoute i à la fin comme dans cet exemple : echo "J'aime
Ubuntu"| sed 's/ubuntu/Debian/gi'
On peut aussi indiquer quelle occurrence d’une ligne remplacer à travers son numéro. Par exemple,
pour remplacer la troisième occurrence utilisez /3 comme dans l’exemple suivants : sed ‘
s/root/toor/3’ cible. Il est aussi possible de cibler une ligne particulière. Par exemple : sed ‘ 3
s/root/toor/g’ cible permet de limiter la substitution à la ligne numéro 3.
L’option -i permet de modifier le fichier. Dans la commande sed ‘ 3 s/root/toor/g’ cible n’imprime
rien sur la sortie du terminal mais modifier directement le fichier.
Ici motif est encadrer dans la première parenthèse, donc on le stocke dans la variable \1.