Commande « rename »

Le
Philippe Delavalade
Bonjour la liste.

Ma question est simple (quant à la réponse) :
si je lance une commande du genre
rename 'y/A-Z/a-z/' fichier
où puis-je récupérer le nouveau nom de fichier (sachant qu'il a été modifié
ou non) de façon à faire un autre rename sur ce nouveau nom.

Le man ne dit rien là-dessus et je n'ai rien trouvé dans perl-doc
mais là, j'ai peut-être mal cherché

Merci par avance d'un tuyau sur le sujet.

--
Ph. Delavalade

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20130919142308.GA6231@messier31
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
steve
Le #25672632
Le 19-09-2013, à 16:23:08 +0200, Philippe Delavalade a écrit :

Bonjour la liste.

Ma question est simple (quant à la réponse...) :
si je lance une commande du genre
rename 'y/A-Z/a-z/' fichier
où puis-je récupérer le nouveau nom de fichier (sachant qu'il a été modifié
ou non) de façon à faire un autre rename sur ce nouveau nom.



Un essai montre que le fichier renommé se trouve dans le même
répertoire que le fichier à renommer (même si la commande est lancée
depuis un autre répertoire que celui contenant le fichier à renommer).

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Francois Mescam
Le #25672672
rename -v .....

On 19/09/2013 16:23, Philippe Delavalade wrote:
Bonjour la liste.

Ma question est simple (quant à la réponse...) :
si je lance une commande du genre
rename 'y/A-Z/a-z/' fichier
où puis-je récupérer le nouveau nom de fichier (sachant qu'il a été modifié
ou non) de façon à faire un autre rename sur ce nouveau nom.

Le man ne dit rien là-dessus et je n'ai rien trouvé dans perl-doc
mais là, j'ai peut-être mal cherché...

Merci par avance d'un tuyau sur le sujet.





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/l1f2to$24i$
Philippe Delavalade
Le #25673512
Le jeudi 19 septembre à 16:33, steve a écrit :
Le 19-09-2013, à 16:23:08 +0200, Philippe Delavalade a écrit :

> Bonjour la liste.
>
> Ma question est simple (quant à la réponse...) :
> si je lance une commande du genre
> rename 'y/A-Z/a-z/' fichier
> où puis-je récupérer le nouveau nom de fichier (sachant qu'il a été modifié
> ou non) de façon à faire un autre rename sur ce nouveau nom.

Un essai montre que le fichier renommé se trouve dans le même
répertoire que le fichier à renommer (même si la commande est lancée
depuis un autre répertoire que celui contenant le fichier à renommer).



Oui mais je me suis sans doute mal exprimé :-) Je cherche comment récupérer
le nouveau nom dans une variable d'environnement pour le réutiliser pour un
notre rename (dans un script).

--
Ph. Delavalade

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Yves Rutschle
Le #25673582
On Fri, Sep 20, 2013 at 04:21:52AM +0200, Philippe Delavalade wrote:
Oui mais je me suis sans doute mal exprimé :-) Je cherche comment récupérer
le nouveau nom dans une variable d'environnement pour le réutiliser pour un
notre rename (dans un script).



Ça va pas se faire tout seul, tu prends la sortie du premier
rename -v et tu la découpe (par ex. avec awk):

rename -v s/foo/bar/ * | awk '{print $4}'

Mais si ça va dans un second rename, pourquoi ne pas faire
les 2 changements d'un coup?

Y.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Philippe Delavalade
Le #25673612
Le vendredi 20 septembre à 07:47, Yves Rutschle a écrit :
On Fri, Sep 20, 2013 at 04:21:52AM +0200, Philippe Delavalade wrote:
> Oui mais je me suis sans doute mal exprimé :-) Je cherche comment récupérer
> le nouveau nom dans une variable d'environnement pour le réutiliser pour un
> notre rename (dans un script).

Ça va pas se faire tout seul, tu prends la sortie du premier
rename -v et tu la découpe (par ex. avec awk):

rename -v s/foo/bar/ * | awk '{print $4}'



Oui c'est cd que j'ai fait finalement avec un
var1=`rename -v ... | gawk ...`
puis un
var2=`rename ...`
et encore et encore

mais il y a eu des cas qui n'ont pas fonctionnés mais bon, je peux faire
quelques trucs à la main :-)

Mais si ça va dans un second rename, pourquoi ne pas faire
les 2 changements d'un coup?



Mais ça, je ne sais pas faire et n'ai pas vu d'exemples de ce genre. Ça
m'intéresse vivement.

Merci.

--
Ph. Delavalade

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Yves Rutschle
Le #25673952
On Fri, Sep 20, 2013 at 08:19:26AM +0200, Philippe Delavalade wrote:
Mais ça, je ne sais pas faire et n'ai pas vu d'exemples de ce genre. Ça
m'intéresse vivement.



rename prend une expression Perl, pas simplement une
expression régulière. On peut donc y faire n'importe quoi:

rename 's/foo/bar/; s/bar/baz/' *

ou des trucs plus funky:

cnt=0 rename '$_ = $ENV{cnt}++' *

(à ne pas tester sur des fichiers importants, hein...)

Y.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Philippe Delavalade
Le #25674642
Le vendredi 20 septembre à 10:47, Yves Rutschle a écrit :
On Fri, Sep 20, 2013 at 08:19:26AM +0200, Philippe Delavalade wrote:
> Mais ça, je ne sais pas faire et n'ai pas vu d'exemples de ce genre. Ça
> m'intéresse vivement.

rename prend une expression Perl, pas simplement une
expression régulière. On peut donc y faire n'importe quoi:

rename 's/foo/bar/; s/bar/baz/' *

ou des trucs plus funky:

cnt=0 rename '$_ = $ENV{cnt}++' *

(à ne pas tester sur des fichiers importants, hein...)



Mille mercis ! Ça me convient parfaitement ; jusque-là, hormis mes essais
avec « rename -v ... | gawk... »
j'enchaînais des boucles « for » mais ça ne me plaisait qu'à moitié (et
encore :-) ).

--
Ph. Delavalade

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Yves Rutschle
Le #25676622
On Fri, Sep 20, 2013 at 03:04:27PM +0200, Philippe Delavalade wrote:
Mille mercis ! Ça me convient parfaitement ; jusque-là, hormis mes essais
avec « rename -v ... | gawk... »
j'enchaînais des boucles « for » mais ça ne me plaisait qu'à moitié (et
encore :-) ).



Pour la prochaine fois: quand tu poses une question, ça vaut
le coup d'expliquer ce que tu essaie de faire au final, au
lieu d'expliquer ce que tu penses qui ne marche pas.

Ici, tu cherchais une solution pour chainer des renames,
alors que tu aurais expliqué ce que tu cherchais réellement
à faire, on aurai sans doute pu te répondre plus
efficacement.

Ça correspond un peu à ce sujet:
http://www.gnurou.org/writing/smartquestionsfr#mozTocId269168

Raccourci de 8 ans d'expérience en ingénieurie: "quel est
votre besoin?" :-) Penser en terme de solution, et pire,
présenter son besoin sous forme de solution, limite notre
façon de penser.

Y.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Publicité
Poster une réponse
Anonyme