J'ai un nom de fonction qui a été mal orthographié et je veux le modifier. Cette fonction est appelée à de nombreux endroits du projet.
Comment puis-je faire ça avec une commande Linux sur SUSE ?
J'ai un nom de fonction qui a été mal orthographié et je veux le modifier. Cette fonction est appelée à de nombreux endroits du projet.
Comment puis-je faire ça avec une commande Linux sur SUSE ?
Attention ! Faire un s/he/him/ sur mon commentaire casserait "là", et ce serait difficile à réparer aussi simplement ! Faites des sauvegardes d'abord, et rappelez-vous que sed utilise des regex, donc vous avez une certaine marge de manœuvre dans la façon dont vous écrivez vos paramètres.
N'êtes-vous pas en train de rogner sur les environs < >
Des personnages ? Tu ne veux pas s/\<oldfunction\>/\<newfunction\>/g
? ou est-ce que je ne reconnais pas un élément standard de RE ?
Une variante réalisée avec Perl :
find . -type f -name "*.php" -print0 | xargs -0 perl -pi.bak -e 's/oldfunction/newfunction/g'
L'avantage de cette méthode est que Perl créera les fichiers de sauvegarde (avec l'option .bak
) de sorte que si vous vous trompez, vous pouvez revenir en arrière.
(Le -print0
pour trouver et l'option -0
option pour xargs ne sont nécessaires que si vous avez des fichiers ou des répertoires contenant des espaces).
Il y a une différence : cela exécute une instance séparée de l'application sed
pour chaque fichier trouvé ; le xargs
exécute une instance avec de nombreux arguments.
Si votre recherche le permet, utilisez +
au lieu de \;
et il réduira le nombre de processus sed pour qu'il imite xargs.
Complément aux autres très bonnes suggestions déjà postées : faites une sauvegarde de l'ensemble du site (cp -r /var/www /var/wold) et faites la modification à cet endroit. Personnellement, je déplacerais ensuite les fichiers modifiés sous, par exemple, /var/www/changed et je testerais http://www.sitename.tld/changed pour s'assurer que tous les scripts fonctionnent avant de mettre en ligne.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.