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» :
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