Ne discutons pas de l'optimisation de ce script SVP, il ne tournera qu'une fois sur ma machine, et pour quelques centaines de fichiers.
find [...] | while read file; do mv "$file" "`echo $file|sed s/a/b/g`" ; done
Si quelqu'un a la moindre idée de ce qu'il faut mettre en a et b pour remplacer chaque guillemet double par deux guillemets simples (`Je dis "salut"` devient `Je dis ''Salut''`), qu'il me fasse signe ;)
J'ai mis un `echo` devant le `mv` et fait plein de tests, mais rien à faire, je n'y arrive pas !
# Réponse
Posté par LeRat . Évalué à 3.
find . "*\"*" -exec rename "s/\"/''/g" {} \;
[^] # Re: Réponse
Posté par LeRat . Évalué à 3.
J'ajoute que '*"*' était plus simple que "*\"*", mais c'est sans grande importance.
Il est aussi intéressant de préciser que si un dossier le nom comporte des guillemets doubles et qu'il contient des fichiers dont les noms comportent des guillemets doubles, au lancement de "script", le dossier sera renommé et les fichiers ne seront pas déplacés, leur nom ayant changé. Il suffit de relancer. Pour 3 niveaux de profondeurs incluant des guillemets, 3 lancements, etc.
# Voili :
Posté par Jacques L. . Évalué à 3.
# ma solution a moi
Posté par Calim' Héros (site web personnel) . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.