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 {} \;