(Courriels de diversion: <ramenerais@tapisserent-embarquerais.com> <falsifieraient@fillettes-reclament.com> <aigrissant@residerons-chretiente.com> <emboîtement@nommeriez-brevetees.com> <spoliiez@detraquerais-forons.com> <causiez@detraquiez-projectionnistes.com> <bouleverseriez@sequencage-pleutre.com> <emacies@clandestinement-casse-croute.com> <collees@refera-adjugeriez.com> <concentrons@trustais-epelait.com> )


jdd a écrit :
Luc Hermitte wrote:

jdd <jdd@dodin.org> wrote in dpbmis$duc$1@savage.iut-blagnac.fr:">news:dpbmis$duc$1@savage.iut-blagnac.fr:


pour ne pas changer, j'ai une difficulté avec la syntaxe du
bash :-(

Souhaitons qu'en 2006, tu arrives à dompter le bash !


mon problème est de modifier le nom d'un fichier (en fait de toute une série de fichiers)

Tu n'as pas rename d'installé ?


Il me semble que cette question de renommage de fichiers est cyclique sur la liste linux-31 et que la réponse "rename" y revient régulièrement.
Il s'agit d'une commande du package Perl.
D'où la 2ème suggestion pour 2006 : apprendre les expressions régulières (indispensable !) et Perl dans la foulée (pour le fun !).


Après, la question posée doit s'approcher d'un jeu d'enfant, genre :
rename 's/^/2005/' *
(avec en réciproque : rename 's/2005//' *)
Au fait, ça marche aussi sous Vim, entre autres ;-)

au fait, il faut rajouter des double quotes:

#!/bin/sh
# chnom texte fichier rajoute texte devant le nom de fichier
a=$1; shift
for  I  ; do mv "$I" "$a$I" ; done

Là, j'y perds mon shell : quelles valeurs veux-tu que prenne I si tu ne lui dis pas dans quoi puiser ses valeurs (genre 'in $*') ?

(pour les noms de fichiers avec espace)

Beurk ! Encore une windowserie ces espaces au milieu des noms de fichiers :-(
Le shell n'aime pas du tout cela ...
Et pour dompter tout à fait ce genre de gag, attendre 2007 ...


Cordialement.
--
Phil

--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>