|
|
|
|
||||||
| linux.debian.user.french Forum sur Linux Debian. Debian-user-french@lists.debian.org |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
--- "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 |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
--- "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 |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
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 |
|
![]() |
| Outils de la discussion | |
|
|