2009/6/8 Vincent-Xavier JUMEL <[email protected]>: > Le 07 juin à 23:22 Geoffroy Carrier a écrit >> 2009/6/7 Isabelle Ramade <[email protected]>: >> > 2009_nomdevoyage_numerophoto.jpg >> > nomdevoyage_numerophoto_w.jpg >> >> for i in *.jpg; do mv "$i" "`echo $i|sed 's/[^_]*_//;s/\.jpg$/_w\.jpg/'`"; >> done >> > Pourrrais tu expliciter les substituions que tu réalises, celle-ci ne me > semblant pas très évidentes.
La première récupère la première plus longue occurence de "autre chose que des _" suivi d'un _ et le remplace par une chaîne vide, donc l'enlève. La seconde remplace ".jpg" suivi d'une fin de ligne par "_w.jpg" Pas très élégant d'exécuter sed pour chaque fichier. Il serait plus efficace de travailler avec un fichier temporaire pour la liste des fichiers. zmv et les fonctions du shell, rename ont été évoqués. Plus pratique mais pas POSIX (ceci dit je ne le suis pas tout à fait, il faut utiliser $() au lieu de ``... les mauvaises habitudes !) -- Geoffroy Carrier _________________________________ Linux mailing list [email protected] http://lists.parinux.org/mailman/listinfo/linux
