Un peu vieille école mais cela fonctionnait sous OS X.
Il y a peu de ruses:
• Ne modifiera que les fichiers avec extension .sls
dans le répertoire courant
• .
doit être échappé pour assurersed
ne pas les évaluer comme "n'importe quel caractère"
• ,
est utilisé comme sed
délimiteur au lieu de l'habituel/
Notez également qu'il s'agit de modifier un modèle Jinja pour passer un variable
dans le chemin d'un import
(mais cela est hors sujet).
Tout d'abord, vérifiez que votre commande sed fait ce que vous voulez (cela n'imprimera que les modifications sur stdout, cela ne changera pas les fichiers):
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Modifiez la commande sed au besoin, une fois que vous êtes prêt à apporter des modifications:
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed -i '' 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Remarquez que -i ''
dans la commande sed , je ne voulais pas créer une sauvegarde des fichiers originaux (comme expliqué dans les modifications sur place avec sed sur OS X ou dans le commentaire de Robert Lujo sur cette page).
Heureux les semeurs!