• [^] # Re: boucle de boucle

    Posté par . En réponse au message Problème renommage fichiers avec des espaces.. Évalué à 3.

    Bien vu la commande rename, j'avais oublié que ça existait :-)

    Pour peaufiner, comme rename peut prendre une liste de fichiers à renommer, on peut combiner find avec xargs, ce qui permet de lancer une seule instance de rename au lieu de le lancer pour chaque résultat de find. Comme les fichiers contiennent éventuellement des espaces il faut alors utiliser l'option -print0 (resp. -0) de find (resp. xargs) pour remplacer l'espace par le caractère nul comme séparateur de champs en sortie (resp. en entrée)

    On peut aussi rendre la regex de rename un peu plus précise en évitant de remplacer les pdfout en milieu de noms de fichier avec 's/pdfout$/pdf/'

    Il faut aussi protéger l'utilisation du caractère * dans le -iname (en tout cas, chez moi, ça ne marche pas sinon)

    au final, ça ferait

    find /media/quadra -type f -iname '*.pdfout' -print0 | xargs -0 rename 's/pdfout$/pdf/'