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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sylvain Sauvage
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 with a subject of "unsubscribe". Trouble? Contact
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
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 with a subject of "unsubscribe". Trouble? Contact
pingouin osmolateur
--- "Maxime 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
foreach $file (@files) { print "$filen"; $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 with a subject of "unsubscribe". Trouble? Contact
--- "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
foreach $file (@files) {
print "$filen";
$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
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
foreach $file (@files) { print "$filen"; $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 with a subject of "unsubscribe". Trouble? Contact
Maxime Petit-laposte.net
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 with a subject of "unsubscribe". Trouble? Contact
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
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 with a subject of "unsubscribe". Trouble? Contact
Maxime Petit-laposte.net
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 with a subject of "unsubscribe". Trouble? Contact
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
> > 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 with a subject of "unsubscribe". Trouble? Contact
Max
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
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"
> "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
Charles Plessy
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 with a subject of "unsubscribe". Trouble? Contact
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
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 with a subject of "unsubscribe". Trouble? Contact
Sylvain Sauvage
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 with a subject of "unsubscribe". Trouble? Contact
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
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 with a subject of "unsubscribe". Trouble? Contact