Script shell exclure fichier

Résolu
vieurou Messages postés 73 Statut Membre -  
vieurou Messages postés 73 Statut Membre -
bonjour

j'ai un script qui étrangement ne fonctionne pas

#!/bin/sh
prefix="OGL_"
for file in [^$prefix]*
do
  echo $file
done

ce script devrait me traiter uniquement les fichier avec un nom ne commençant pas par "OGL_", malheureusement ces fichier (qui ont un nom commençant par OGL_" sont traité quand même

j'ai également changer for file in [^$prefix]* en mettant "OGL_" en dur (comme cela : for file in [^OGL_]*) mais pas d'amélioration

merci de votre aide
Configuration: Linux Kubuntu 7.04
Firefox 2.0.0.6

6 réponses

  1. ShaBoo
     
    Bonjour,

    il ne te manquerais pas une commande 'ls' tant ton script ?
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    La négation s'obtient avec "!" (point d'exclamation) :
    #!/bin/sh
    prefix="OGL_"
    for file in [!$prefix]*
    do
      echo $file
    done
    ;-))
    0
  3. vieurou Messages postés 73 Statut Membre 2
     
    tu peut en dire plus stp
    0
  4. vieurou Messages postés 73 Statut Membre 2
     
    j'ai dans le repertoire que je traite les fichier
    GPUtruc.ppp
    GPUchose.ppp
    OGL_GPUmachin.ppp
    automodif.sh 
    

    automodif est mon script

    quand je met " for file in [^$prefix]* " il me traite tout les fichier sauf mon script, donc celui commençant par OGL aussi

    quand je met " for file in [!$prefix]* " il ne me traite que mon script...

    ...???
    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
     
    Essaye alors :
    for file in $(ls *.ppp | grep -v "$prefix"); do ...
    ;-))

    PS. Le point d'exclamation n'étant pas la bonne solution dans ce cas là ;-)
    0
  7. vieurou Messages postés 73 Statut Membre 2
     
    Merci , ça marche
    0