Renommage via script shell

Résolu
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. Modérateur
    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$
    ;-))
    1. 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)
      1. Modérateur
        Alors écris-le comme suit :

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

        :-))