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 à : <[email protected]>.
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.

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.
nom_fichier
Ajouter le texte lu sur nom_fichier.
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 finît avec « } »).
é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ë ».
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.
é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.
é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.
nom_fichier
Ecrire l'espace de motif actuel dans nom_fichier.
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 à [email protected]. 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 à : <[email protected]>.

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 <[email protected]> et bubu <[email protected]>
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 à [email protected]

Recommended readings

Pages related to sed you should read also: