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

  • Votes
  • Date
  • Date décroissante
  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à ;-)
    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
        Salut,

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

          il ne te manquerais pas une commande 'ls' tant ton script ?