sed - éditeur de flux pour filtrer et transformer du
texte
sed [-V] [--version] [--help] [-n] [--quiet] [--silent]
[-l N] [--line-length=N] [-u] [--unbuffered]
[-E] [-r] [--regexp-extended]
[-e script] [--expression=script]
[-f fichier-script] [--file=fichier-script]
[script-si-pas-autre-script]
[fichier...]
Sed est un éditeur de flux. Un éditeur de
flux est utilisé pour réaliser des transformations basiques de
texte sur un flux entrant (un fichier ou une entrée d'un pipeline).
Bien qu'assez similaire à un éditeur qui permet des
modifications de script (tel que ed), sed fonctionne en
seulement une passe sur l'entrée(s), et est donc plus efficace. Mais
c'est sa capacité à filtrer du texte dans un tube qui le
distingue particulièrement des autres types d'éditeurs.
-n, --quiet, --silent
- supprimer l'affichage automatique de l'espace de motif
--debug
- annoter l'exécution du programme
-e script, --expression=script
- ajouter le script aux commandes à exécuter
-f fichier-script,
--file=fichier-script
- ajouter le contenu du fichier-script aux commandes à
exécuter
--follow-symlinks
- suivre les liens symboliques lors du traitement sur place
-i[SUFFIX], --in-place[=SUFFIX]
- editer les fichiers sur place (fait des sauvegardes si SUFFIX est
fourni)
-l N, --line-length=N
- indiquer la longueur de retour à la ligne souhaitée pour la
commande « l »
--posix
- désactiver toutes les extensions GNU.
-E, -r, --regexp-extended
- utiliser des expressions rationelles étendues dans le script (pour
la portabilité, utiliser POSIX -E).
-s, --separate
- considérer les fichiers comme séparés plutôt
qu'un long flux unique continu.
--sandbox
- opérer en mode bac à sable (désactiver les commandes
e/r/w).
-u, --unbuffered
- charger des quantités minimales de données à partir
des fichiers d'entrée et vider les tampons de sortie plus
souvent
-z, --null-data
- séparer les lignes avec des caractères NULL
- --help
- afficher l'aide-mémoire et quitter.
- --version
- afficher les informations de version et quitter.
Si aucune option -e, --expression, -f ou
--file n'est fournie, alors le premier argument qui n'est pas une
option est considéré comme le script sed à
interpréter. Tous les arguments restants sont des noms de fichiers
d'entrée ; l'entrée standard est lue si aucun fichier
d'entrée n'est spécifié.
Page d'accueil de GNU sed :
<https://www.gnu.org/software/sed/>. Aide générale pour
l'utilisation des logiciels GNU :
<https://www.gnu.org/gethelp/>. Envoyer les rapports de bogue
à : <bug-sed@gnu.org>.
Empaqueté par Debian, Copyright © 2022 Free Software
Foundation, Inc. Licence GPLv3+ : GNU GPL version 3 ou
ultérieure <https://gnu.org/licenses/gpl.html>. Ce programme
est un logiciel libre. Vous pouvez le modifier et le redistribuer. Il n'y a
AUCUNE GARANTIE dans la mesure autorisée par la loi.
Il ne s'agit que d'un bref synopsis des commandes sed pour
servir d'aide-mémoire pour ceux et celles qui connaissent
déjà sed ; vous devrez consulter d'autres
documentations (comme le document texinfo) pour avoir une description plus
complète.
« commandes » sans addresse
- : étiquette
- Étiquette pour les commandes b et t.
- #commentaire
- Le commentaire s'étend jusqu'au prochain changement de ligne (ou
à la fin d'un fragment de script -e).
- }
- L'accolade fermante d'un bloc { }.
- =
- Afficher le numéro de ligne actuel.
- a \
- texte
- Ajouter texte, qui a chaque changement de ligne incorporé
précédé d'une barre oblique inverse.
- i \
- texte
- Insérer texte, qui a chaque changement de ligne
incorporé précédé d'une barre oblique
inversée.
- q [code_de_retour]
- Quitter immédiatement le script sed sans traiter plus
d'entrées, excepté si l'affichage automatique n'est pas
désactivé, l'espace de motifs actuels sera affiché.
Le code de retour est une extension GNU.
- Q [code_de_retour]
- Quitter immédiatement le script sed sans traiter plus
d'entrées. C'est une extension GNU.
- r nom_fichier
- Ajouter le texte lu sur nom_fichier.
- R nom_fichier
- Ajouter une ligne lue dans nom_fichier. Chaque invocation de la
commande lit une ligne sur le fichier. Cela est une extension GNU.
- {
- Débuter un bloc de commandes (qui finît avec
« } »).
- b étiquette
- Sauter à étiquette ; si
étiquette est ommis, sauter sur la fin du script.
- c \
- texte
- Remplacer les lignes sélectionnées par le texte, qui
a chaque changement de ligne incorporé précédé
d'une barre oblique inversée.
- d
- Effacer l'espace de motif. Commencer un nouveau cycle.
- D
- Si l'espace de motif ne contient aucun changement de ligne, commencer un
nouveau cycle normal si la commande d est émise. Sinon, effacer le
texte dans l'espace de motif jusqu'au premier changement de ligne, et
relancer le cycle avec l'espace de motif résultant, sans lire un
changement de ligne d'entrée.
- h H
- Copier/ajouter l'espace de motif à l'espace de stockage.
- g G
- Copier/ajouter l'espace de stockage à l'espace de motif.
- l
- Énumérer la ligne en cours sous une forme
« visuellement non ambiguë ».
- l largeur
- Énumérer la ligne en cours sous une forme
« visuellement non ambiguë », en la
coupant aux caractères largeur. C'est une extension
GNU.
- n N
- Lire/ajouter la prochaine ligne d'entrée dans l'espace de
motif.
- p
- Afficher l'espace de motif actuel.
- P
- Afficher jusqu'au premier changement de ligne intégré dans
l'espace de motif actuel.
- s/regexp/remplacement/
- Essayer de faire correspondre regexp avec l'espace du motif. En cas
de réussite, remplacer la portion correspondante avec
remplacement. Le remplacement peut contenir le
caractère spécial & pour faire
référence à la portion de l'espace de motif qui
correspond, et les caractères spéciaux \1 à \9 pour
faire référence aux sous-expressions mises en correspondance
dans le regexp.
- t étiquette
- Si un s/// a réussi une substitution depuis que la dernière
ligne d'entrée a été lue et depuis la dernière
commande t ou T, alors sauter à
l'étiquette ; si l'étiquette est omise,
sauter à la fin du script.
- T étiquette
- Si aucun s/// n'a réussi de substitution depuis la lecture de la
dernière ligne d'entrée et depuis la dernière
commande t ou T, alors sauter à
l'étiquette ; si l'étiquette est omise,
sauter à la fin du script. C'est une extension GNU.
- w nom_fichier
- Ecrire l'espace de motif actuel dans nom_fichier.
- W nom_fichier
- Ecrire la première ligne de l'espace de motif actuel dans
nom_fichier. C'est une extension GNU.
- x
- Echanger les contenus des espaces de stockage et de motif.
- y/source/dest/
- Translitérer les caractères de l'espace de motif qui
apparaissent dans source au caractère correspondant dans
dest.
Les commandes Sed peuvent être fournies sans
adresses, 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 sera exécutée pour toutes les lignes de
l'entrée qui correspondent à l'intervalle inclusif des lignes
débutant à la première adresse et finissant à la
seconde adresse. Trois choses à retenir sur les 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 un regexp,
elle ne sera pas testée par rapport à la ligne qui correspond
à addr1.
Un ! peut être inséré après
l'adresse (ou intervalle d'adresse) et avant la commande, qui indique que la
commande ne sera exécutée que si l'adresse (ou intervalle
d'adresse) ne correspond pas.
Les formes d'adresse suivantes sont prises en charge :
- nombre
- Correspondre seulement à la ligne spécifiée
nombre (qui s'incrémente de façon cumulative dans les
fichiers, à moins que l'option -s ne soit
spécifiée sur la ligne de commande).
- première~étape
- Correspondre à toutes les étape-énièmes
lignes en commençant avec la ligne première.Par
exemple, “sed -n 1~2p” affichera toutes les lignes impaires
du flux d'entrée, et l'adresse 2~5 correspondra à toutes les
cinq lignes, en commençant par la deuxième ligne.
premier peut être zéro ; dans ce cas
Sed opère comme s'il était égal à
étape. (C'est une extension.)
- $
- Correspondre à la dernière ligne.
- /regexp/
- Correspondre aux lignes partageant l'expression rationelle regexp.
La correspondance est réalisée sur l'espace de motifs
actuel, et peut être modifiée avec des commandes telles que
`s///".
- \cregexpc
- Correspondre aux lignes partageant l'expression rationelle regexp.
Le c peut être n'importe quel caractère.
GNU sed prend aussi en charge quelques formes
spéciales à deux addresses :
- 0,addr2
- Démarrer dans l'état "première adresse
correspondante", jusqu'à ce que addr2 soit
trouvée. Cela est similaire à 1,addr2, sauf que si
addr2 correspond à la toute première ligne
d'entrée, la forme 0,addr2 sera à la fin de son
intervalle, alors que la forme 1,addr2 sera toujours au
début de son intervalle. Cela ne fonctionne que lorsque
addr2 est une expression rationelle.
- addr1,+N
- Correspondra à addr1 et aux N lignes suivant
addr1.
- addr1,~N
- Correspondra à addr1 et aux lignes suivant addr1
jusqu'à la prochaine ligne d'entrée dont le numéro
est un multiple de N.
Les BRE (Basic Regular Expression) POSIX.2 devraient
être pris en charge, mais ne le sont pas complètement pour des
problèmes de performance. la séquence \n dans une
expression régulière correspond au caractère changement
de ligne, et de même pour \a, \t, et d'autres
séquences. A la place, l'option -E change l'usage des
expressions rationnelles étendues ; cela a été
pris en charge pendant des années par GNU sed et est maintenant
inclus dans POSIX.
Envoyez par e-mail vos signalements de bogue à
bug-sed@gnu.org. Merci d'inclure aussi la sortie de “sed
--version" dans le corps de votre rapport si possible.
Écrit par Jay Fenlason, Tom Lord, Ken Pizzini, Paolo
Bonzini, Jim Meyering, et Assaf Gordon.
Ce programme sed a été construit avec la prise en
charge de SELinux. SELinux est désactivé sur ce
système.
Page d'accueil de GNU sed :
<https://www.gnu.org/software/sed/>. Aide générale pour
l'utilisation des logiciels GNU :
<https://www.gnu.org/gethelp/>. Envoyer les rapports de bogue
à : <bug-sed@gnu.org>.
awk(1), ed(1), grep(1), tr(1),
perlre(1), sed.info, l'un des divers ouvrages sur sed, la FAQ
de sed (http://sed.sf.net/grabbag/tutorials/sedfaq.txt),
http://sed.sf.net/grabbag/.
La documentation complète pour sed est disponible
comme manuel Texinfo. Si les programmes info et sed sont
proprement installés sur votre système, la commande
- info sed
devrait vous donner accès au manuel complet.
La traduction française de cette page de manuel a
été créée par Alain Portal
<aportal@univ-montp2.fr> et bubu <bubub@no-log.org>
Cette traduction est une documentation libre ; veuillez
vous reporter à la
GNU General
Public License version 3 concernant les conditions de copie et de
distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page
de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.