SED
Section : Manuel de l'utilisateur Linux (
1)
Mise à jour de la version anglaise : Février 2006
Index
Menu principal
NOM
sed - Éditeur de flux pour le filtrage et la transformation de texte
SYNOPSIS
sed
[
OPTION]...
{script-seulement-si-pas-d-autre-script} [
fichier-d-entrée]...
DESCRIPTION
sed
est un éditeur de flux.
Un éditeur de flux est utilisé pour effectuer des transformations de texte
basiques sur un flux d'entrée (un fichier ou l'entrée d'un tube).
Alors que d'une certaine manière il est similaire à un éditeur qui permette
des éditions scriptées (comme
ed),
sed
fonctionne en seulement une passe sur l'entrée(s) et est, par conséquent,
plus efficace. Mais c'est sa capacité à filtrer du texte dans un tube qui le
distingue des autres éditeurs.
-
-n, --quiet, --silent
-
- Supprimer l'affichage automatique de l'espace de travail.
-
-e script, --expression=script
-
- Ajouter le script aux commandes à exécuter.
-
-f script-file, --file=script-file
-
- Ajouter le contenu du fichier script aux commandes à exécuter.
-
-i[SUFFIX], --in-place[=SUFFIX]
-
Éditer le fichier en ligne (faire une sauvegarde si une extension est fournie).
-
-l N, --line-length=N
-
- Spécifier la longueur de coupure désirée pour la commande « l ».
-
--posix
-
- Désactiver toutes les extensions GNU.
-
-r, --regexp-extended
-
- Utiliser les expressions rationnelles dans le script.
-
-s, --separate
-
- Considérer les fichiers séparemment plutôt qu'un unique long flux continu.
-
-u, --unbuffered
-
- Charger un minimum de données des fichiers d'entrée et vider les tampons de
sortie plus souvent.
- --help
-
Afficher cette aide et quitter.
- --version
-
Afficher les informations de version et quitter.
Si aucune des options parmi
-e,
--expression,
-f
ou
--file
n'est fournie,
le premier argument qui ne soit pas une option est considéré comme étant
le script à interpréter. Si aucun fichier n'est spécifié en entrée, l'entrée standard est lue.
SYNOPSIS DES COMMANDES
Il s'agit seulement d'un bref synopsis des commandes de
sed
pour servir d'aide-mémoire à ceux qui connaissent déjà
sed.
Vous devrez consulter d'autres documentations (comme la page texinfo,
en anglais) pour avoir une description plus complète.
Commandes zéro adresse
- : étiquette
-
Étiquette pour les commandes
b
et
t.
- #commentaire
-
Le commentaire va jusqu'au prochain saut de ligne (ou à la fin
du fragment de script
-e).
- }
-
L'accolade fermante d'un block { }.
Commandes zéro ou une adresse
- =
-
Afficher le numéro de la ligne courante.
- a \
-
- texte
-
Ajouter
texte,
qui a un saut de ligne incorporé précédé par une barre oblique inverse.
- i \
-
- text
-
Insérer
text,
qui a un saut de ligne incorporé précédé par une barre oblique inverse.
- q
-
Quitter immédiatement le script
sed
sans traiter plus d'entrées, excepté que si l'affichage automatique n'est
pas désactivé, l'espace de travail sera affiché.
- Q
-
Quitter immédiatement le script
sed
sans traiter plus d'entrées.
- r nom_fichier
-
Ajouter le texte lu dans
nom_fichier.
- R nom_fichier
-
Ajouter une ligne lue dans
nom_fichier.
Commandes qui acceptent des intervalles d'adresses.
- {
-
Débuter un block de commandes (le finir avec }).
- b étiquette
-
Sauter à
étiquette ;
si
étiquette
est omise, sauter à la fin du script.
- t étiquette
-
Si une commande « s/// » a réalisé avec succès une substitution depuis
que la dernière ligne d'entrée ait été lue et depuis la dernière commande
t ou T, sauter à
étiquette ;
si
étiquette
est omise, sauter à la fin du script.
- T étiquette
-
Si aucune commande « s/// » n'a réalisé avec succès une substitution depuis
que la dernière ligne d'entrée ait été lue et depuis la dernière commande
t ou T, sauter à
étiquette ;
si
étiquette
est omise, sauter à la fin du script.
- c \
-
- texte
-
Remplacer les lignes sélectionnées par le
texte,
qui a un saut de ligne incorporé précédé par une barre oblique inverse.
- d
-
Effacer l'espace de travail.
Démarrer un nouveau cycle.
- D
-
Effacer l'espace de travail jusqu'au premier saut de ligne incorporé.
Démarrer un nouveau cycle mais sauter la lecture de l'entrée s'il y a encore
des données dans l'espace de travail.
- h H
-
Copier/ajouter l'espace de travail à l'espace intermédiaire.
- g G
-
Copier/ajouter l'espace intermédiaire à l'espace de travail.
- x
-
Échanger le contenu des espaces de travail et intermédiaire.
- l
-
Afficher la ligne courante sous une forme « visuellement non ambigüe ».
- n N
-
Lire/ajouter la ligne suivante de l'entrée dans l'espace de travail.
- p
-
Afficher l'espace de travail courant.
- P
-
Afficher l'espace de travail courant jusqu'au premier saut de ligne incorporé.
- s/regexp/remplacement/
-
Tenter de faire correspondre
regexp
à l'espace de travail.
Si cela réussit, remplacer avec
replacement
la portion qui correspond.
Le
remplacement
peut contenir le caractère spécial
&
pour faire référence à cette portion de l'espace de travail qui correspondait,
et les caractères spéciaux de \1 à \9 pour faire référence aux
sous-expressions, mises en correspondance avec
regexp,
correspondantes.
- w nom_fichier
-
Écrire le contenu de l'espace de travail dans
nom_fichier.
- W nom_fichier
-
Écrire la première ligne de l'espace de travail courant dans
nom_fichier.
- y/source/dest/
-
Translitérer les caractères de l'espace de travail qui apparaissent dans
source
en leur caractère correspondant dans
dest.
Adresses
Les commandes
sed
peuvent être fournies sans adresse, auquel cas la commande sera exécutée pour
toutes les lignes de l'entrée ; avec une adresse, auquel cas la commande ne
sera exécutée que pour les lignes de l'entrée qui correspondent à cette
adresse ; ou avec deux adresses, auquel cas la commande ne sera exécutée que
pour les lignes appartenant à l'intervalle inclusif débutant à la première
adresse et finissant à la seconde.
Il faut noter trois choses à propos des intervalles d'adresses :
la syntaxe est
addr1,
addr2
(c'est-à-dire que les adresses sont séparées par une virgule);
la ligne qui correspond à
addr1
sera toujours acceptée, même si
addr2
sélectionne une ligne précédente ; et si
addr2
est une
regexp (expression rationnelle),
elle ne sera pas testée sur la ligne qui correspond à
addr1.
Après l'adresse (ou intervalle d'adresse) et avant la commande, un
!
peut être inséré qui spécifie que la commande ne sera exécutée que si
l'adresse (ou intervalle d'adresse)
ne
correspond
pas.
Les types d'adresse suivants sont supportés :
- nombre
-
Faire correspondre seulement la ligne
nombre.
- premier~pas
-
Faire correspondre chaque
pas-ième
ligne en commençant à la ligne
premier.
Par exemple, « sed -n 1~2p » affichera toutes les lignes impaires du flux
d'entrée, et les adresses « 2~5 » feront correspondre chaque cinquième ligne
en commençant à la seconde. (Ceci est une extension).
- $
-
Faire correspondre la dernière ligne.
- /regexp/
-
Faire correspondre les lignes qui correspondent à l'expression rationnelle
regexp.
- \cregexpc
-
Faire correspondre les lignes qui correspondent à l'expression rationnelle
regexp.
Le
c
peut être n'importe quel caractère.
sed
GNU supporte également des formes « deux adresses » particulières :
- 0,addr2
-
Démarrer dans l'état « la première adresse correspond », jusqu'à ce que
addr2
soit trouvée.
Ceci est similaire à
1,addr2,
excepté que si
addr2
correspond à la toute première ligne de l'entrée, la forme
0,addr2
sera à la fin de cet intervalle, alors que la forme
1,addr2
sera encore au début de cet intervalle.
- addr1,+N
-
Correspondra à
addr1
et aux
N
lignes suivant
addr1.
- addr1,~N
-
Correspondra à
addr1
et aux lignes suivant
addr1
jusqu'à qu'à la prochaine ligne dont le numéro est un multiple de
N.
EXPRESSIONS RATIONNELLES
Les expressions rationnelles POSIX.2
devraient
être supportées, mais elles ne le sont pas complètement à cause de problème
de performance. La séquence
\n
dans une expression rationnelle correspond au caractère saut de ligne,
il en est de même pour
\a,
\t,
et d'autres séquences.
BOGUES
Envoyez les rapports de bogues (en anglais) par courriel à
bonzini@gnu.org.
Assurez-vous d'inclure le mot « sed » quelque part dans le « Sujet : ».
Merci d'inclure également la sortie de la commande « sed --version » dans
le corps de votre rapport.
COPYRIGHT
Copyright © 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
VOIR AUSSI
awk(1),
ed(1),
grep(1),
tr(1),
perlre(1)
sed.info
différents livres sur
sed
la FAQ
sed
en anglais (
http://sed.sf.net/grabbag/tutorials/sedfaq.txt),
http://sed.sf.net/grabbag/.
La documentation complète de
sed
est maintenue en anglais au format manuel Texinfo. Si les programmes
info
et
sed
sont correctement installés sur votre machine, la commande
-
info sed
vous donnera accès au manuel complet.
TRADUCTION
Ce document est une traduction réalisée par Alain Portal
<aportal AT univ-montp2 DOT fr> le 3 juillet 2006
et révisée le 19 novembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 1 sed ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- SYNOPSIS DES COMMANDES
-
- Commandes zéro adresse
-
- Commandes zéro ou une adresse
-
- Commandes qui acceptent des intervalles d'adresses.
-
- Adresses
-
- EXPRESSIONS RATIONNELLES
-
- BOGUES
-
- COPYRIGHT
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 19 novembre 2007