Bonjour,
Voilà je cherche à remplacer des chaînes de caractères dans des dossiers et sous-dossiers sous Linux mais j'ai des problèmes lorsque des retours à la lignes viennent s'imiter dans la ligne que j'essaye de remplacer.
J'ai donc tout d'abord essayer avec la commande suivante :
mais malheureusement comme expliquer au dessus, dès qu'il y a un retour à la ligne, ma commande ne s'exécute plus, sinon elle fonctionne parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part #find /var/www -type f -exec sed -i -e 's/\($[a-z0-9A-Z_]*\)\( *= *\)\(reqmysql *(.*) *;\)/\1\2\3\n\1->execute();/g' {} \;
J'ai donc essaye ensuite avec une autre commande :
Cette fois-ci les retours à la ligne sont bien prit en compte mais là encore un problème survient, je ne sais pas pourquoi, mais la ligne que j'essaye de rajouter avec ma commande s'écrit parfois plusieurs fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part find /var/www -type f -exec sed -i -e 'N;s/\($[a-z0-9A-Z_]*\)\( *= *\)\(reqmysql *(\n*.*) *;\)/\1\2\3\n\1->execute();/g;P;D;' {} \;
Si quelqu'un aurait une solution ou connaîtrais la raison de ce problème, je l'en remercie d'avance de bien vouloir m'en faire part.
Partager