Caractere * dans le nom des fichiers

Résolu
toyoyo27 -  
toyoyo27 Messages postés 5 Statut Membre -
Bonjour,
Voici mon problème: j'ai une serie de données dont les nom comporte une ou plusiers * 'etoile'
exemple : TOTO.TATA.model ou FIFI**FAFA.model
est-il possible de rennomer ces fichiers en meme temps "il en exixte de 100ene" par une commande ?
D'avance merci...
Configuration: solaris 8 et aix

5 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Ok, ça c'est parce que le shell ksh n'a pas la même faculté de développement des paramètres que le shell bash. Donc essaie comme ça, en espérant que ça ne posera pas de problèmes supplémentaires...
    for i in *; do mv ${i} $(echo ${i} | sed 's/\*/_/g'); done
    ;-))
    1
    1. toyoyo27 Messages postés 5 Statut Membre
       
      SUPER !!!!!!!

      Merci !!!!!!!!!!

      Content rosko !!!

      Je pense qu'il n'y aurait pas de problème avec d'autres caractères.
      Je vais tester car j'ai aissi des fichiers avec des 'espaces' :(


      Encore merci !!!
      0
  2. simo
     
    #ls *.tst
    test**1.tst test*2.tst

    #for f in `ls *.tst`
    >do
    >echo $f| sed 's/\*/_/g'
    >done

    test__1.tst
    test_2.tst

    ;)
    ça marche sous aix :)
    1
    1. toyoyo27 Messages postés 5 Statut Membre
       
      MERCI

      Voici au final....

      #for f in `find * | grep "*"`
      >do
      >mv ${f} $(echo ${f} | sed 's/\*/_/g')
      >done


      :)
      :)
      0
  3. toyoyo27 Messages postés 5 Statut Membre
     
    FAUTES CORRIGEES

    Bonjour,
    Voici mon problème : j'ai une serie de données dont les noms comportent une ou plusiers * 'etoile'
    exemple : TOTO*TATA.model ou FIFI**FAFA.model
    Est-il possible de rennomer ces fichiers en meme temps " il en exixte des centaines " par une commande ?
    D'avance merci...
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Oui surement, tout dépend comment tu veux les renommer ???
    [essai]$ ls
    FIFI**FAFA.model  TOTO*TATA.model
    
    [essai]$ for i in *; do cp ${i} ${i}.bak ;done
    [essai]$ ls
    FIFI**FAFA.model  FIFI**FAFA.model.bak  TOTO*TATA.model  TOTO*TATA.model.bak
    [essai]$
    ;-))
    0
    1. toyoyo27 Messages postés 5 Statut Membre
       
      Salut

      Merci pour ta réponse je l'utiliserais pour d'autres applications..
      Mais mon problème et de renommer mes fichier pour faire disparaître les fameuses *
      exemple : FIFI**FAFA.model devient FIFI__FAFA.model
      la plupart de mes commande plante à cause des * contenues dans le nom des fichiers

      Encore merci
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    [essai]$ ls
    FIFI**FAFA.model  TOTO*TATA.model
    
    [essai]$ for i in *; do mv ${i} ${i//\*/_}; done
    
    [essai]$ ls
    FIFI__FAFA.model  TOTO_TATA.model
    
    [essai]$
    ;-))
    0
    1. toyoyo27 Messages postés 5 Statut Membre
       
      Bonjour

      Je viens de tester la commande
      voici la réponse

      # ls
      9834*XXXX±NISN±HSDPOST±MOUL±REP3±±±±GAUCHE±±SUR*3D*7057±D0S*000907*YTH.model
      # for i in *; do mv ${i} ${i//\*/_}; done
      ksh: ${i//\*/_}: 0403-011 Substitution incorrecte pour cette commande.

      j'ai fait le test sous SOLARIS et AIX ...oups j'ai la même réponse


      : (
      0