Un po 'vecchia scuola ma questo ha funzionato su OS X.
Ci sono alcuni trucchi:
• Modifica solo i file con estensione .slsnella directory corrente
• .deve essere evitato per assicurarsi sedche non li valuti come "qualsiasi carattere"
• ,è usato come seddelimitatore invece del solito/
Nota anche che serve per modificare un modello Jinja per passare a variablenel percorso di un import(ma questo è fuori tema).
Innanzitutto, verifica che il tuo comando sed faccia quello che vuoi (questo stamperà solo le modifiche a stdout, non cambierà i file):
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Modifica il comando sed quando necessario, quando sei pronto per apportare modifiche:
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed -i '' 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Nota -i ''nel comando sed , non volevo creare un backup dei file originali (come spiegato in Modifiche sul posto con sed su OS X o nel commento di Robert Lujo in questa pagina).
Felice gente seding!