| Forums FUG-FR | |
|
https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl
FreeBSD >> Pratique >> [Shell] Combiné Sed grep et find https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl?num=1150273337 Message started by firebolt31 on 14. Jun 2006 at 10:22 |
|
|
Title: [Shell] Combiné Sed grep et find Post by firebolt31 on 14. Jun 2006 at 10:22
Bonjour à tous,
Voila je suis entrain d'essayer de combiener les commandes suivnates: GREP FIND ET SED Le but ??? Dans une arborescence de fichier, trouver tous les fichiers ayant une certaines chaine de caractère et la modifier par une nouvelle :) Donc j'ai déjà ca: Code (]find . -name '*.conf' | xargs grep -i 'url_de_monsite'[/code):
MAis je n'arrive pas a combiner les deux pour faire l'opération en une seule et unique fois :( Si quelqu'un pouvait m'aider :) Merci d'avance |
|
Title: Re: [Shell] Combiné Sed grep et find Post by ros on 14. Jun 2006 at 10:48
Je ne suis pas un maître shell, mais il me semble que tu pourais proceder comme suit :
[code]find . -name '*.conf' -exec grep -qi 'url_de_mon_site {} && sed s/url_de_mon_site/new_url_de_mon_site/g {} > {}; [/code] Bien entendu je n'ai absolument rien testé de tout cela ;D |
|
Title: Re: [Shell] Combiné Sed grep et find Post by francis on 14. Jun 2006 at 10:53
A quelques détails près, ça devrait ressembler à ça:
[code] find . -name "*.conf" -exec fgrep -i old_url \{\} \; -ok sed -i.bak 's/old_url/new_url/g' \{\} \;[/code] Si la méthode d'enchainer les deux commandes ne fonctionne pas, tu peux aussi utiliser le flag -print0 et piper dans xargs -0 .... Le -ok fonctionne comme le -exec mais en demandant confirmation à l'utilisateur (pour le premier run, on sait jamais). Voila. Reste à corriger d'éventuelles erreurs de quotes, etc. |
|
Title: Re: [Shell] Combiné Sed grep et find Post by francis on 14. Jun 2006 at 11:00 ros wrote on 14. Jun 2006 at 10:48:
Je crois que le '&&' et les redirections seront parsés par le shell et pas par find, donc le find sera mal formatté (manquera le \; du -exec) et sed ne trouvera pas son fichier '{}'. En outre, c'est en général la perte des fichiers manipulés lorsqu'on met un fichier en tant qu'entrée et sortie d'une commande (réduction à un fichier vide). C'est pour ça que des commandes comme sed ont un flag "in-place". |
|
Title: Re: [Shell] Combiné Sed grep et find Post by firebolt31 on 14. Jun 2006 at 11:26
Merci de votre aide, je vais tester ca des cet aprem :)
|
|
Forums FUG-FR » Powered by YaBB 2.5.2! YaBB Forum Software © 2000-2025. All Rights Reserved. |