Aller au contenu | Aller au menu | Aller à la recherche


Remplacer une chaîne dans tous les fichiers en récursif

Remplacer une chaîne de caractère dans tous les fichiers et sous dossiers.

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

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet