Renommer des fichier

Résolu
Sara -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Si on a un dossier qui contient 100 fichiers, le nom de chaqun de ces fichier est de type:
GAL_2011125_2011325_std_fre_A.txt
comment je peux sur Linux changer son nom au:
GAL_2011125_2011325.txt

qqn peut m'aider car je suis débutante en Linux et je dois vraiment trouver une solution de ce problème

Merci d'avance

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Si tous tes fichiers sont du même acabit que dans ton exemple...

    $ ls -1
    GAL_2011125_2011320_std_fre_A.txt
    GAL_2011125_2011321_std_fre_A.txt
    GAL_2011125_2011322_std_fre_A.txt
    GAL_2011125_2011323_std_fre_A.txt
    GAL_2011125_2011324_std_fre_A.txt
    GAL_2011125_2011325_std_fre_A.txt
    
    $ for fich in *;do mv -v "${fich}" $(echo ${fich} | sed 's/_[a-z]\+.*\./\./');done
    'GAL_2011125_2011320_std_fre_A.txt' -> 'GAL_2011125_2011320.txt'
    'GAL_2011125_2011321_std_fre_A.txt' -> 'GAL_2011125_2011321.txt'
    'GAL_2011125_2011322_std_fre_A.txt' -> 'GAL_2011125_2011322.txt'
    'GAL_2011125_2011323_std_fre_A.txt' -> 'GAL_2011125_2011323.txt'
    'GAL_2011125_2011324_std_fre_A.txt' -> 'GAL_2011125_2011324.txt'
    'GAL_2011125_2011325_std_fre_A.txt' -> 'GAL_2011125_2011325.txt'
    
    $ ls -1
    GAL_2011125_2011320.txt
    GAL_2011125_2011321.txt
    GAL_2011125_2011322.txt
    GAL_2011125_2011323.txt
    GAL_2011125_2011324.txt
    GAL_2011125_2011325.txt
    
    $

    ;-))
    0
  2. Sara
     
    En fait, j'ai essayé votre code pour des fichiers comme vous avez proposé mais ça marche pas !!

    (Illegal variable name)?
    je sais pas pourquoi??

    et les fichier que je les ai dans le dossier contient aussi des chiffres ;

    GAL_2010121_2012315_32d_f1e_A.txt
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      Peux-tu afficher ce que tu tapes? Ca ne permettra de voir l'erreur.
      0
    2. Sara
       
      #!/bin/csh
      foreach file (GAL*)
      echo ''
      echo 'hiiii'
      echo ''
      mv -v "${fich}" $(echo ${fich} | sed 's/_[a-z]\+.*\./\./')
      end

      et sur l'ecran il affiche:


      hiiii

      Illegal variable name.
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      J'avais prévenu : Si tous tes fichiers sont du même acabit ;-\

      Les fichiers ont tous le même nombre de caractères, du moins dans la partie à garder ?

      Quel shell utilises-tu ?
      0
    4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Mais bash au lieu de csh
      0
    5. Sara
       
      oui tous les fichiers ont le meme nombre de caractères
      0