SED(1) | Commandes de l'utilisateur | SED(1) |
NOM¶
sed - éditeur de flux pour filtrer et transformer du texte
SYNOPSIS¶
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...]
DESCRIPTION¶
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>.
SYNOPSIS DES COMMANDES¶
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 { }.
Commandes sans ou avec une adresse¶
- =
- 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.
Commandes qui acceptent des intervalles d'adresses¶
- {
- Débuter un bloc de commandes (qui finit 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.
Adresses¶
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.
EXPRESSIONS RATIONNELLES¶
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.
BOGUES¶
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.
AUTEUR¶
É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>.
COPYRIGHT¶
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.
VOIR AUSSI¶
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.
TRADUCTION¶
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.
Décembre 2022 | GNU sed 4.9 |