Renommage via script shell

Résolu
dbourrion Messages postés 15 Statut Membre -  
dbourrion Messages postés 15 Statut Membre -
Bonjour,
Bonjour.

Je récupère toutes les nuits dans un répertoire une série de fichiers nommés ainsi :

NC3858510_A1628717_gl20090914.not

NC3879755_A1643326_Sylvain_Bo.not

NC3774201_A1569573_15_07_2009.not

et je souhaite les débarrasser de tout ce qui précède le second _ pour obtenir donc ;

gl20090914.not
Sylvain_Bo.not
15_07_2009.not

J'ai pensé à un script shell utilisant sed mais comment dire... Je débute ;-)

Help welcome.

5 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

     ssh$ ls -1
    NC3774201_A1569573_15_07_2009.not
    NC3858510_A1628717_gl20090914.not
    NC3879755_A1643326_Sylvain_Bo.not
    
     ssh$ while read line;do mv "${line}" $(sed 's/[^_]*_[^_]*_//' <<<${line});done < <(ls)
    
     ssh$ ls -1
    15_07_2009.not
    gl20090914.not
    Sylvain_Bo.not
    
     ssh$
    ;-))
    0
  2. dbourrion Messages postés 15 Statut Membre
     
    Enorme ! Merci mille fois
    0
  3. dbourrion Messages postés 15 Statut Membre
     
    je sais j'abuse mais la même rentrée dans un script provoque une erreur syntax error near unexpected token '>'

    #! /bin/sh
    while read line;do mv "${line}" $(sed 's/[^_]*_[^_]*_//' <<<${line});done < <(ls)
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Alors écris-le comme suit :

    #! /bin/sh
    
    for line in *
    do
    mv "${line}" $(sed 's/[^_]*_[^_]*_//' <<<${line})
    done
    

    :-))
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dbourrion Messages postés 15 Statut Membre
     
    Alors là, chapeau bas....

    JE te bénis ;-)

    Merci.
    D.
    0