Modifier nom de fichier dans un répertoire

Résolu
JsuisNul Messages postés 137 Statut Membre -  
 JsuisNul -
Bonjour a tous,

J'ai un répertoire ou j'ai plusieurs fichier qui se termine comme suit :
fichier_XX""".csv

je voudrais tous les renommer en supprimant les """ pour avoir :
fichier_XX.csv

J'ai essayer la commande rename mais j'ai l'impression qu'elle n'est pas reconnu...

merci d'avance.

11 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    bash: rename command not found ?
    sinon essayer : (rien n'est renommé avec -n)
    $ rename -n 's/XX[^.]*./XX./' fichier*.csv
    fichier_XX""".csv renamed as fichier_XX.csv
    $ 
    
    1
  2. JsuisNul Messages postés 137 Statut Membre 1
     
    Bonjour,

    voila quand je tape rename man :
    ksh: rename: not found

    Sinon il faut que je précise que les noms des fichiers se décomposent ainsi :

    fichier_XX""".csv (exemple vrai nom : f_000520636_HPCIC_BX11_942""".csv )

    fichier = début du nom de fichier identique
    XX = numéro différent sur chaque fichier
    """ = parti à supprimer
    .csv = extension

    Merci.
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    enlever le echo pour effectuer le rename
    for F in f*csv; do echo mv $F ${F/+(\")/}; done
    0
  4. JsuisNul Messages postés 137 Statut Membre 1
     
    Merci pour tes réponses.
    Est ce que je dois préciser le répertoire ? ou il suffit juste d'exécuter le script en étant déjà dans le répertoire ?
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      il faut être dans le répertoire
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JsuisNul
     
    Hello,

    Bon j'ai donc exécuté dans le répertoire mais j'ai un message d'erreur :

    nso_1.ksh[2]: ${F/+(\")/}: bad substitution
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    un vieux ksh .... alors essayer:
    for F in fich*.csv ; do echo mv $F $(echo $F | sed 's/"*//g'); done
    
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    si ce qu'affiche la commande te va, enlève l'echo pour exécuter le rename
    0
  9. JsuisNul
     
    Bon j'ai essayé avec les echo, le résultat afficher à l'aire bon mais il se passe rien.

    Sans les echo voila ce que j'obtiens :

    nso_1.ksh[2]: f_000520636_HPCIC_BX11_998""".csv: cannot execute
    Usage: mv [-I] [-i | -f] [-E{force|ignore|warn}] [--] src target
    or: mv [-I] [-i | -f] [-E{force|ignore|warn}] [--] src1 ... srcN directory
    0
  10. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    il ne faut pas enlever le 2ème echo ! comme ça:
    for F in f*.csv ; do mv $F $(echo $F | sed 's/"*//g'); done
    0
  11. JsuisNul
     
    Super ça fonctionne impec !! ;-)

    Merci pour ton Aide.

    P.S pour Jipicy : Désolé d'avoir poster en double car je pensais que ma première demande n'avait pas été pris en compte.
    0