Syntaxe
- remplacer une chaîne de caractères dans un fichier
sed -i -e "s/chaines1/chaine2/g" fichier
remplacer récursivementdans tous les fichiers de type .txt
find . -name "*.txt" -type f -exec sed -i "s/chaine1/chaine2/g" {} \;
Sélection multiple
sed -e 's/chaines1/chaines2/g' -e 's/chaines3/chaines4/g'
ou
`sed 's/chaines1/chaines2/g;s/chaines3/chaines4/g'`
Exemples avec échappements des caractères spéciaux
- remplacer dans le fichier index.html toutes les occurences de l'adresse web par une autre adresse web.
sed -i -e "s/http\:\/\/selleriephoenix.com/http\:\/\/new.selleriephoenix.com/g" index.html
- Içi on échappe aux doubles guillements, aux doubles points ainsi qu'aux slashs.
find . -name "*.html" -type f -exec sed -i "s/http\:\/\/sellerie-phoenix.com/http\:\/\/new.selleriephoenix.com/g" {} \;
- remplacement de même type dans les fichiers php avec une substitution de chemin absolu par un autre.
find . -name "*.php" -type f -exec sed -i "s/\/shared\/www\/G-SoftS\/Phoenix\/new\//\/home\/www\/selphoenix\/www\//g" {} \;
- ajouter dans le fichier catalogue.html une entrée de menu "boucles" après l'entrée "briderie"
sed -i -e "s/<li class=\"menu\"><a href=\"http\:\/\/new.sellerie-phoenix.com\/produits\/briderie\">Briderie<\/a><\/li>/<li class=\"menu\"><a href=\"http\:\/\/new.sellerie-phoenix.com\/produits\/briderie\">Briderie<\/a><\/li><li class=\"menu\"><a href=\"http\:\/\/new.sellerie-phoenix.com\/produits\/boucles\">Boucles<\/a><\/li>/g" catalogue.html
- Il n'est pas nécéssaire d'échapper aux espaces ni aux "<" et ">" (guillemets typographiques ?)
find . -name "*.html" -type f -exec sed -i "s/<li class=\"menu\"><a href=\"http\:\/\/new.sellerie-phoenix.com\/produits\/briderie\">Briderie<\/a><\/li>/<li class=\"menu\"><a href=\"http\:\/\/new.sellerie-phoenix.com\/produits\/briderie\">Briderie<\/a><\/li><li class=\"menu\"><a href=\"http\:\/\/new.sellerie-phoenix.com\/produits\/boucles\">Boucles<\/a><\/li>/g" {} \;
Travail sur le footer
*1
<div id=\"footer\"><a rel=\"license\" href=\"http\:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/fr\/\"><img alt=\"Licence Creative Commons\" style=\"border-width\:0\" src=\"https\:\/\/i.creativecommons.org\/l\/by-sa\/2.0\/fr\/88x31.png\"><\/a><br>Design sous license CC-BY-SA 2.0<\/div>
*2
find . -name "*.html" -type f -exec sed -i "s/<div id=\"footer\"> Creative Commons <a href=\"#\">Company Name<\/a> <\/div>/<div id=\"footer\"><a rel=\"license\" href\"http\:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/fr\/\"><img alt=\"Licence Creative Commons\" style=\"border-width\:0\"src=\"https\:\/\/i.creativecommons.org\/l\/by-sa\/2.0\/fr\/88x31.png\"><\/a><br>Design sous license CC-BY-SA 2.0.<a href=\"http\:\/\/new.sellerie-phoenix.com\/confidentialité.html>Politique de confidentialité<\/a><\/div>/g" {} \;
*3
find . -name "*.php" -type f -exec sed -i "s/<div id=\"footer\"><a rel=\"license\" href=\"http\:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/fr\/\"><img alt=\"Licence Creative Commons\" style=\"border-width\:0\" src=\"https\:\/\/i.creativecommons.org\/l\/by-sa\/2.0\/fr\/88x31.png\"><\/a><br>Design sous license CC-BY-SA 2.0.<a href=\"http\:\/\/new.sellerie-phoenix.com\/confidentialité.html>Politique de confidentialité<\/a><\/div>/<div id=\"footer\"><a rel=\"license\" href=\"http\:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/fr\/\"><img alt=\"Licence Creative Commons\" style=\"border-width\:0\" src=\"https\:\/\/i.creativecommons.org\/l\/by-sa\/2.0\/fr\/88x31.png\"><\/a><br>Design sous license CC-BY-SA 2.0.<a href=\"http\:\/\/new.sellerie-phoenix.com\/confidentialité.html\">Politique de confidentialité<\/a><\/div>/g" {} \;