Remplacement de chaîne dans vos fichiers en récursif
Avec perl vous pouvez remplacer le contenu de vos fichiers avec la commande suivante :
perl -pi'*.bak' -e 's/ChaineARemplacer/ChaineRemplacée/g' `find . -name '*'`
Cette commande modifie tous vos fichiers en récursif en changeant le mot "ChaineARemplacer" par "ChaineRemplacée". Et enregistre les fichiers initiaux avec l'extension ".bak"
Mise en application de la substitution de chaînes pour migrer ses vieux sites PHP
Donc pour les amateurs de PHP qui souhaitent convertir leurs balises courtes d'ouverture de PHP short open tag <? en <?php
perl -pi'*.bak' -e 's/\<\?/\<\?php/g' `find . -name '*.php'`
Et voilà la première substitution de string est faite ! Et au cas où il y avait déjà des fichiers contenant <?php on convertit les <?phpphp en <?php
perl -pi'*.bak' -e 's/\<\?phpphp/\<\?php/g' `find . -name '*.php'`
Et on termine avec la correction des écritures courtes : <?= qui sont écrites en <?php=
perl -pi'*.bak' -e 's/\<\?php=/\<\?php echo /g' `find . -name '*.php'`
Et optionnellement ajouter un espace à echo$var p
perl -pi'*.bak' -e 's/echo\$/echo \$/g' `find . -name '*.php'`
Pour finir, si nous n'avons plus besoin des fichiers de backup (*.bak), nous les supprimons :
find . -name "*.bak" -type f -exec rm -fv {} \;