Script shell exclure fichier

Résolu
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. Bonjour,

    il ne te manquerais pas une commande 'ls' tant ton script ?
    1. Modérateur
      Salut,

      La négation s'obtient avec "!" (point d'exclamation) :
      #!/bin/sh
      prefix="OGL_"
      for file in [!$prefix]*
      do
        echo $file
      done
      ;-))
      1. 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...

        ...???
        1. Modérateur
          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à ;-)