Scroll to navigation

SED(1) Manuel de l'utilisateur Linux 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.
Afficher cette aide et quitter.
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.
Ajouter texte, qui a un saut de ligne incorporé précédé par une barre oblique inverse.
Insérer text, qui a un saut de ligne incorporé précédé par une barre oblique inverse.
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é.
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 }).
étiquette
Sauter à étiquette ; si étiquette est omise, sauter à la fin du script.
é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.
é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 \
Remplacer les lignes sélectionnées par le texte, qui a un saut de ligne incorporé précédé par une barre oblique inverse.
Effacer l'espace de travail. Démarrer un nouveau cycle.
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.
Copier/ajouter l'espace de travail à l'espace intermédiaire.
Copier/ajouter l'espace intermédiaire à l'espace de travail.
Échanger le contenu des espaces de travail et intermédiaire.
Afficher la ligne courante sous une forme « visuellement non ambigüe ».
Lire/ajouter la ligne suivante de l'entrée dans l'espace de travail.
Afficher l'espace de travail courant.
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.
nom_fichier
Écrire le contenu de l'espace de travail dans nom_fichier.
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 :

Faire correspondre seulement la ligne nombre.
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.
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.
Correspondra à addr1 et aux N lignes suivant addr1.
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.

Février 2006 sed-4.1.5