La Commande Sed
La Commande Sed
La Commande Sed
LA COMMANDE SED
Chapitre 3 : Gestion des fichiers
Module : Système d’exploitation 1
et des répertoires
LA COMMANDE SED
La commande sed est un éditeur ligne non interactif,
il lit les lignes d'un fichier une à une (ou provenant de
l'entrée standard) leur applique un certain nombre de
commandes d'édition et renvoie les lignes résultantes
sur la sortie standard.
Il ne modifie pas le fichier traité, il écrit tout sur la
2
sortie standard.
sed est une évolution de l'éditeur ed lui même
précurseur de vi
la syntaxe n'est pas très conviviale
SED: SYNTAXE
sed –e ‘programme sed' fichier à traiter
Ou
sed –f ‘programme sed' fichier à traiter
3
L'option -e n'est pas nécessaire quand on a
une seule fonction d'édition.
Chapitre 3 : Gestion des fichiers
Module : Système d’exploitation 1
et des répertoires
4
va changer toutes les occurrences de la chaîne toto par TOTO
sed "s/toto/TOTO/p" fichier
en cas de remplacement la ligne concernée est affichée sur la sortie standard
sed "s/toto/TOTO/w resultat" fichier
en cas de substitution la ligne en entrée est inscrite dans un fichier résultat
sed -e "s/[Ff]raise/FRAISE/g" fichier
substitue toutes les chaînes Fraise ou fraise par FRAISE
Chapitre 3 : Gestion des fichiers
Module : Système d’exploitation 1
et des répertoires
5
virgule. – $sed "/toto/,/toto1/d" Fichier
Ces deux option d’identification d’un interval sont aussi correcte pour la
fonction p.
Si au contraire on ne veut pas effacer les lignes contenant la chaîne toto
(toutes les autres sont supprimées), on tapera:
Sed "/toto/!d" fichier
En fait les lignes du fichier d'entrée ne sont pas supprimées, elles le sont au
niveau de la sortie standard.
Chapitre 3 : Gestion des fichiers
Module : Système d’exploitation 1
et des répertoires
LES FONCTIONS P, =
La commande p (print) affiche toutes les lignes sur la sortie
standard.
Elle invalide l'option –n (affiche les lignes sélectionnées).
La commande = donne le numéro de la ligne sélectionnée sur
la sortie standard.
6
Ces deux commandes sont utiles pour le débogage, quand on
met au point ses programmes sed.
LES FONCTIONS Q, R ET W
La fonction q (quit) va interrompre l'exécution de sed,
la ligne en cours de traitement est affichée sur la
sortie standard (uniquement si -n n'a pas été
utilisée).
La fonction r (read) lit le contenu d'un fichier et écrit
le contenu sur la sortie standard.
7
La fonction w (write) écrit la ligne sélectionnée dans
un fichier.
sed "/^toto/w resultat" fichier
Cette commande va écrire dans le fichier resultat
toutes les lignes du fichier fichier commençant par la
chaîne toto.
Chapitre 3 : Gestion des fichiers
Module : Système d’exploitation 1
et des répertoires
8
Exemple :
sed 1i\ Debut test1.txt
Insert Debut avent la 1 ère ligne du fichier test1.txt
La commande:
Sed –e "s/\([0-9][0-9]*\)/aa\1aa/" fichier
La sous expression (sous chaîne) \ ([0-9][0-9]*\)
désigne un ou plusieurs chiffres, le premier de la
ligne sera entouré des caractères aa.
La chaîne to2to deviendra toaa2aato.
9
Chapitre 3 : Gestion des fichiers
Module : Système d’exploitation 1
et des répertoires
EXERCICE
LES ALIAS
Il permet de donner un synonyme à une commande ou à un
groupement de commandes.