SED(1)

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.