PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Serveur - Sécurité et techniques > linux.debian.user.french > "rename"
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
linux.debian.user.french Forum sur Linux Debian. Debian-user-french@lists.debian.org

"rename"

Réponse
 
LinkBack Outils de la discussion
Vieux 08/08/2006, 22h00   #1
Maxime Petit-laposte.net
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut "rename"

Salut,
je souhaite renommer tout les fichiers d'un répertoire.
après avoir cherché sur le net, je sais tout faire, sauf ce qui m'intéresse.

Je veux juste rajouter des caractères (les mêmes) au début des noms des
fichiers:

01.xyz
02.xyz

deviennent:

le_fichier_01.xyz
le_fichier_02.xyz

"rename" doit pouvoir faire ça très bien avec quelque chose du genre
+ (pour ajouter)
* (pour modifier tous les fichiers du répertoire)
mais je ne sais pas quel est l'ordre à donner à tout ça.

Merci
Max

ps: dans les pages man ils parlent de langage Perl pour les scripts de
"rename".
est ce que toutes les lignes de commandes sont en Perl; ou bien cela
dépend-il des fonctions?

si oui, perl est-il accessible aux débutants? (j'ai fais un peu de
fortran et de programmation machine dans une vie antérieure)


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 08/08/2006, 22h20   #2
Sylvain Sauvage
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: "rename"

Mardi 8 août 2006, 22:51:48 CEST, Maxime Petit-laposte.net a écrit :
>
> Salut,


'soir,

> je souhaite renommer tout les fichiers d'un répertoire.
> après avoir cherché sur le net, je sais tout faire, sauf ce qui
> m'intéresse.
>
> Je veux juste rajouter des caractères (les mêmes) au début des noms des
> fichiers:


mmv sait faire ça (paquet du même nom).

Mais comme je ne m'en sers pas souvent et que je ne veux pas repasser par
la case man, je fais plus simple :

for f in *; do mv $f le_fichier_$f; done

Avec les possibilités regexp du shell, p.ex. bash ${x/y} ${x#y}..., on
peut aussi faire plus complexe.

Pour ce qui est ponctuel ou ce qui n'a pas besoin d'être rapide, le shell
est souvent largement suffisant.

--
Sylvain Sauvage


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 08/08/2006, 22h20   #3
Sylvain Sauvage
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: "rename"

Mardi 8 août 2006, 22:51:48 CEST, Maxime Petit-laposte.net a écrit :
>
> Salut,


'soir,

> je souhaite renommer tout les fichiers d'un répertoire.
> après avoir cherché sur le net, je sais tout faire, sauf ce qui
> m'intéresse.
>
> Je veux juste rajouter des caractères (les mêmes) au début des noms des
> fichiers:


mmv sait faire ça (paquet du même nom).

Mais comme je ne m'en sers pas souvent et que je ne veux pas repasser par
la case man, je fais plus simple :

for f in *; do mv $f le_fichier_$f; done

Avec les possibilités regexp du shell, p.ex. bash ${x/y} ${x#y}..., on
peut aussi faire plus complexe.

Pour ce qui est ponctuel ou ce qui n'a pas besoin d'être rapide, le shell
est souvent largement suffisant.

--
Sylvain Sauvage


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 08/08/2006, 22h50   #4
pingouin osmolateur
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut RE : "rename"


--- "Maxime Petit-laposte.net"
<max72.petit@laposte.net> a écrit :

> Salut,

Salut,
> je souhaite renommer tout les fichiers d'un
> répertoire.
> après avoir cherché sur le net, je sais tout faire,
> sauf ce qui m'intéresse.
>
> Je veux juste rajouter des caractères (les mêmes) au
> début des noms des
> fichiers:
>
> 01.xyz
> 02.xyz
>
> deviennent:
>
> le_fichier_01.xyz
> le_fichier_02.xyz
>
> "rename" doit pouvoir faire ça très bien avec
> quelque chose du genre
> + (pour ajouter)
> * (pour modifier tous les fichiers du
> répertoire)
> mais je ne sais pas quel est l'ordre à donner à tout
> ça.
>
> Merci
> Max
>
> ps: dans les pages man ils parlent de langage Perl
> pour les scripts de
> "rename".
> est ce que toutes les lignes de commandes sont en
> Perl; ou bien cela
> dépend-il des fonctions?


Ce sont des expressions regulières utilisés par perl,
php, les même que j'utilise pour parser le nom du
fichier

> si oui, perl est-il accessible aux débutants? (j'ai
> fais un peu de
> fortran et de programmation machine dans une vie
> antérieure)


Le perl c'est hyper je trouve pour faire des choses
simples assez facilement. Le petit script suivant doit
faire ce que tu veux enfin j'espère, teste le
C'est pas tres propre mais chez moi ça a l'air de
fonctionner

#!/usr/bin/perl
my $count = 0 ;
opendir(DIR, ".");
@files = grep { /[^\.]/ } readdir(DIR);
closedir(DIR);

foreach $file (@files) {
print "$file\n";
$count++;
$file =~ /(\w+)\.*(\w*)/ ;
if ( $2 ne ""){
my $new_file = "$1_$count.$2" ;
rename($file,$new_file);
}
else {
my $new_file = "$1_$count" ;
rename($file,$new_file);
}

}

Voila ciao
AC







__________________________________________________ _________________________
Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet !
Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences.
http://fr.answers.yahoo.com


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 08/08/2006, 22h50   #5
pingouin osmolateur
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut RE : "rename"


--- "Maxime Petit-laposte.net"
<max72.petit@laposte.net> a écrit :

> Salut,

Salut,
> je souhaite renommer tout les fichiers d'un
> répertoire.
> après avoir cherché sur le net, je sais tout faire,
> sauf ce qui m'intéresse.
>
> Je veux juste rajouter des caractères (les mêmes) au
> début des noms des
> fichiers:
>
> 01.xyz
> 02.xyz
>
> deviennent:
>
> le_fichier_01.xyz
> le_fichier_02.xyz
>
> "rename" doit pouvoir faire ça très bien avec
> quelque chose du genre
> + (pour ajouter)
> * (pour modifier tous les fichiers du
> répertoire)
> mais je ne sais pas quel est l'ordre à donner à tout
> ça.
>
> Merci
> Max
>
> ps: dans les pages man ils parlent de langage Perl
> pour les scripts de
> "rename".
> est ce que toutes les lignes de commandes sont en
> Perl; ou bien cela
> dépend-il des fonctions?


Ce sont des expressions regulières utilisés par perl,
php, les même que j'utilise pour parser le nom du
fichier

> si oui, perl est-il accessible aux débutants? (j'ai
> fais un peu de
> fortran et de programmation machine dans une vie
> antérieure)


Le perl c'est hyper je trouve pour faire des choses
simples assez facilement. Le petit script suivant doit
faire ce que tu veux enfin j'espère, teste le
C'est pas tres propre mais chez moi ça a l'air de
fonctionner

#!/usr/bin/perl
my $count = 0 ;
opendir(DIR, ".");
@files = grep { /[^\.]/ } readdir(DIR);
closedir(DIR);

foreach $file (@files) {
print "$file\n";
$count++;
$file =~ /(\w+)\.*(\w*)/ ;
if ( $2 ne ""){
my $new_file = "$1_$count.$2" ;
rename($file,$new_file);
}
else {
my $new_file = "$1_$count" ;
rename($file,$new_file);
}

}

Voila ciao
AC







__________________________________________________ _________________________
Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet !
Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences.
http://fr.answers.yahoo.com


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 08/08/2006, 23h30   #6
Maxime Petit-laposte.net
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Resolu "rename"

MERCI Ã tous les deux
> mmv sait faire ça (paquet du même nom).
>
> Mais comme je ne m'en sers pas souvent et que je ne veux pas repasser par
> la case man, je fais plus simple :
>
> for f in *; do mv $f le_fichier_$f; done
>

super, je me doutais qu'il fallait utiliser "$" mais je ne connaissait
pas "f".
je crois que "." symbolisait les "files" donc cela ne marchait pas;
evidement.

> Avec les possibilités regexp du shell, p.ex. bash ${x/y} ${x#y}..., on
> peut aussi faire plus complexe.
>
>

il semblerait...
> Pour ce qui est ponctuel ou ce qui n'a pas besoin d'être rapide, le shell
> est souvent largement suffisant.
>
>


je n'en revient pas de la puissance de la ligne de comande...
je comence Ãl'utiliser régulièrement et c'est top.

bye,
Max


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 08/08/2006, 23h30   #7
Maxime Petit-laposte.net
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Resolu "rename"

MERCI Ã tous les deux
> mmv sait faire ça (paquet du même nom).
>
> Mais comme je ne m'en sers pas souvent et que je ne veux pas repasser par
> la case man, je fais plus simple :
>
> for f in *; do mv $f le_fichier_$f; done
>

super, je me doutais qu'il fallait utiliser "$" mais je ne connaissait
pas "f".
je crois que "." symbolisait les "files" donc cela ne marchait pas;
evidement.

> Avec les possibilités regexp du shell, p.ex. bash ${x/y} ${x#y}..., on
> peut aussi faire plus complexe.
>
>

il semblerait...
> Pour ce qui est ponctuel ou ce qui n'a pas besoin d'être rapide, le shell
> est souvent largement suffisant.
>
>


je n'en revient pas de la puissance de la ligne de comande...
je comence Ãl'utiliser régulièrement et c'est top.

bye,
Max


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 08/08/2006, 23h50   #8
Max
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Resolu "rename"

2006/8/9, Maxime Petit-laposte.net :

> > for f in *; do mv $f le_fichier_$f; done
> >

> super, je me doutais qu'il fallait utiliser "$" mais je ne connaissait
> pas "f".


???

"f" c'est une variable quelconque, comme ça aurait pu être "i" ou "fic"

--
Max
  Réponse avec citation
Vieux 08/08/2006, 23h50   #9
Maxime Petit-laposte.net
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Resolu "rename"

Max a écrit :
> 2006/8/9, Maxime Petit-laposte.net :
>
>> >
>> >

>> super, je me doutais qu'il fallait utiliser "$" mais je ne connaissait
>> pas "f".

>
> ???
>
> "f" c'est une variable quelconque, comme ça aurait pu être "i" ou "fic"
>

donc

for u in *; do mv $u le_fichier_$u; done

devrait marcher aussi?

merci
Max


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 08/08/2006, 23h50   #10
Max
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Resolu "rename"

2006/8/9, Maxime Petit-laposte.net :

> > for f in *; do mv $f le_fichier_$f; done
> >

> super, je me doutais qu'il fallait utiliser "$" mais je ne connaissait
> pas "f".


???

"f" c'est une variable quelconque, comme ça aurait pu être "i" ou "fic"

--
Max
  Réponse avec citation
Vieux 08/08/2006, 23h50   #11
Maxime Petit-laposte.net
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Resolu "rename"

Max a écrit :
> 2006/8/9, Maxime Petit-laposte.net :
>
>> >
>> >

>> super, je me doutais qu'il fallait utiliser "$" mais je ne connaissait
>> pas "f".

>
> ???
>
> "f" c'est une variable quelconque, comme ça aurait pu être "i" ou "fic"
>

donc

for u in *; do mv $u le_fichier_$u; done

devrait marcher aussi?

merci
Max


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 09/08/2006, 00h00   #12
Max
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Resolu "rename"

Le 09/08/06, Maxime Petit-laposte.net a écrit :

> > "f" c'est une variable quelconque, comme ça aurait pu être "i" ou "fic"
> >

> donc
>
> for u in *; do mv $u le_fichier_$u; done
>
> devrait marcher aussi?


oui

--
Max
  Réponse avec citation
Vieux 09/08/2006, 00h00   #13
Max
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Resolu "rename"

Le 09/08/06, Maxime Petit-laposte.net a écrit :

> > "f" c'est une variable quelconque, comme ça aurait pu être "i" ou "fic"
> >

> donc
>
> for u in *; do mv $u le_fichier_$u; done
>
> devrait marcher aussi?


oui

--
Max
  Réponse avec citation
Vieux 09/08/2006, 04h10   #14
Charles Plessy
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: "rename"

Le Tue, Aug 08, 2006 at 10:51:48PM +0200, Maxime Petit-laposte.net a écrit :
>
> Je veux juste rajouter des caractères (les mêmes) au début des noms des
> fichiers:
>
> 01.xyz
> 02.xyz
>
> deviennent:
>
> le_fichier_01.xyz
> le_fichier_02.xyz


Bonjour,

en effet, «rename» est un bon candidat pour cette tâche.

Il dispose d'un option -n qui permet de simuler l'opération, ce qui est
bien pratique pour éviter les catastrophes (comme renommer tous ses
fichiers avec le même nom.

kunpuu|charles|$ rename -n s/^/le_ficher_/ *xyz
01.xyz renamed as le_ficher_01.xyz
02.xyz renamed as le_ficher_02.xyz

rename prend une expression rationnelle comme argument et l'applique à
tous les noms de fichiers qu'on lui donne.

Les expressions rationnelles de perl sont bien documentées, et on peut
accéder à cette doc par «perldoc perlre » en console. Le programme
lui-même possède une page de manuel, comme tous les programmes
exécutables distribués par Debian.

Bonne journée

--
Charles Plessy
http://charles.plessy.org
Wako, Saitama, Japon


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 09/08/2006, 04h10   #15
Charles Plessy
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: "rename"

Le Tue, Aug 08, 2006 at 10:51:48PM +0200, Maxime Petit-laposte.net a écrit :
>
> Je veux juste rajouter des caractères (les mêmes) au début des noms des
> fichiers:
>
> 01.xyz
> 02.xyz
>
> deviennent:
>
> le_fichier_01.xyz
> le_fichier_02.xyz


Bonjour,

en effet, «rename» est un bon candidat pour cette tâche.

Il dispose d'un option -n qui permet de simuler l'opération, ce qui est
bien pratique pour éviter les catastrophes (comme renommer tous ses
fichiers avec le même nom.

kunpuu|charles|$ rename -n s/^/le_ficher_/ *xyz
01.xyz renamed as le_ficher_01.xyz
02.xyz renamed as le_ficher_02.xyz

rename prend une expression rationnelle comme argument et l'applique à
tous les noms de fichiers qu'on lui donne.

Les expressions rationnelles de perl sont bien documentées, et on peut
accéder à cette doc par «perldoc perlre » en console. Le programme
lui-même possède une page de manuel, comme tous les programmes
exécutables distribués par Debian.

Bonne journée

--
Charles Plessy
http://charles.plessy.org
Wako, Saitama, Japon


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 09/08/2006, 20h20   #16
Sylvain Sauvage
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Resolu "rename"

Mercredi 9 août 2006, 00:50:33 CEST, Max a écrit :
>
> Le 09/08/06, Maxime Petit-laposte.net a écrit :
>
> > > "f" c'est une variable quelconque, comme ça aurait pu être "i" ou
> > > "fic"
> > >

> > donc
> >
> > for u in *; do mv $u le_fichier_$u; done
> >
> > devrait marcher aussi?

>
> oui


La page de man de bash est très bien.
L'imprimer est une bonne idée (64 pages) :
man -t bash > bash.ps

--
Sylvain Sauvage


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Vieux 09/08/2006, 20h20   #17
Sylvain Sauvage
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Resolu "rename"

Mercredi 9 août 2006, 00:50:33 CEST, Max a écrit :
>
> Le 09/08/06, Maxime Petit-laposte.net a écrit :
>
> > > "f" c'est une variable quelconque, comme ça aurait pu être "i" ou
> > > "fic"
> > >

> > donc
> >
> > for u in *; do mv $u le_fichier_$u; done
> >
> > devrait marcher aussi?

>
> oui


La page de man de bash est très bien.
L'imprimer est une bonne idée (64 pages) :
man -t bash > bash.ps

--
Sylvain Sauvage


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 18h24.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,30759 seconds with 25 queries