Section courante

A propos

Section administrative du site

sed

Éditeur orienté flux
Linux Externe

Syntaxe

sed [ -hnV ][-e script ][-f script-file ][--help ][--quiet ][--silent ] [--version][--expression=script ][--file=script-file ][file ... ]

Paramètres

Nom Description
-e script Ce paramètre permet d'ajouter le script spécifié à la commande a exécuter.
--expression=script Ce paramètre permet d'ajouter le script spécifié à la commande a exécuter.
-f script-file Ce paramètre permet d'ajouter le contenu du fichier spécifié à la commande a exécuter.
--file=script-file Ce paramètre permet d'ajouter le contenu du fichier spécifié à la commande a exécuter.
--follow-symlinks Ce paramètre permet d'indiquer qu'il faut suivre le traitement spécifié par le lien symbolique.
--help Ce paramètre permet d'indiquer qu'il faut afficher l'aide sur cette commande.
-i[SUFFIX] Ce paramètre permet d'éditer les fichiers en places (il fait une sauvegarde de l'extension du fichier spécifié, si celui-ci est fournit).
--in-place[=SUFFIX] Ce paramètre permet d'éditer les fichiers en places (il fait une sauvegarde de l'extension du fichier spécifié, si celui-ci est fournit).
-l N Ce paramètre permet de spécifier le nombre de ligne désirés.
--line-length=N Ce paramètre permet de spécifier le nombre de ligne désirés.
-n Ce paramètre permet d'enlever l'affichage automatique des espaces de palette.
--POSIX Ce paramètre permet de désactiver tous les extensions GNU.
--quiet Ce paramètre permet d'enlever l'affichage automatique des espaces de palette.
-r Ce paramètre permet d'appliquer une expression régulière (regex) au script.
--regexp-extended Ce paramètre permet d'appliquer une expression régulière (regex) au script.
-s Ce paramètre permet d'indiquer qu'il faut considérer les fichiers séparément plutôt que comme un seul flux continue.
--separate Ce paramètre permet d'indiquer qu'il faut considérer les fichiers séparément plutôt que comme un seul flux continue.
--silent Ce paramètre permet d'enlever l'affichage automatique des espaces de palette.
-u Ce paramètre permet d'indiquer qu'il faut charger la quantité minimal de données dans fichiers d'entrées et vider les tampons le plus souvent possible.
--unbuffered Ce paramètre permet d'indiquer qu'il faut charger la quantité minimal de données dans fichiers d'entrées et vider les tampons le plus souvent possible.
--version Ce paramètre permet d'indiquer qu'il faut afficher le numéro de version de cette commande.

Description

Cette commande permet d'éditer un groupe de fichier selon certaines séquences.

Exemples

Prenons pour acquis que le fichier «monfichier.txt» est le contenu suivant :

Voici un texte avec abcdef dedans.

Exemple de remplacement de la chaîne de caractères «abcdef» par «vwxyz» dans le fichier «monfichier.txt» sans distinction entre minuscule et majuscule :

sed -i s/abcdef/vwxyz/ monfichier.txt

on obtiendra le résultat suivant :

Voici un texte avec vwxyz dedans.

L'exemple suivant permet de remplacer des espaces par des virgules dans l'expression «45645654 56546546 54465654 46546546» :

echo "45645654 56546546 54465654 46546546" | sed -e "s/ /,/g"

on obtiendra le résultat suivant :

45645654,56546546,54465654,46546546

Prenons pour acquis le fichier suivant «test.htm» :

  1. <body>
  2. <title>Mon titre</title>
  3. #BEGIN#.....#END#
  4.  
  5. #MULTIBEGIN#
  6. ...
  7. ...
  8. #MULTIEND#
  9. </body>

L'exemple suivant permet de remplacer les balise «#MULTIBEGIN#» et «#MULTIEND#» situés sur de multiple ligne par le mot «GLADIR» :

sed ':a;N;$!ba;s/#MULTIBEGIN#.*#MULTIEND#/GLADIR/g' test.htm

on obtiendra le résultat suivant :

<body>
<title>Mon titre</title>
#BEGIN#.....#END#

GLADIR
</body>

L'exemple suivant permet de combiner trois expressions régulières afin de mettre une barre oblique en avant des caractères «/», «:», «.» et remplace les espaces par «\s» :

echo "Redirect /testgoogle http://www.google.ca" | sed -e 's/\//\\\//g' -e 's/\./\\\./g' -e 's/\s/\\\s/g' -e 's/\:/\\\:/g'

on obtiendra le résultat suivant :

Redirect\s\/testgoogle\shttp\:\/\/www\.google\.ca

L'exemple suivant permet de combiner trois expressions régulières afin de mettre une barre oblique en avant des caractères «/», «:», «.» et remplace les espaces par «\s» :

echo "Redirect /testgoogle http://www.google.ca" | sed -e 's/\//\\\//g' -e 's/\./\\\./g' -e 's/\s/\\\s/g' -e 's/\:/\\\:/g'

L'exemple suivant permet de convertir les «utf8mb4_unicode_520_ci» par «utf8mb4_unicode_ci» dans un fichier «monfichierexporter.sql» :

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' monfichierexporter.sql

Voir également

Système d'exploitation - Linux - Références de commandes et de programmes - awk
Système d'exploitation - Linux - Références de commandes et de programmes - ed
Système d'exploitation - Linux - Références de commandes et de programmes - grep

Dernière mise à jour : Vendredi, le 16 octobre 2015