Script shell exclure fichier

Résolu/Fermé
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 - 14 sept. 2007 à 17:06
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 - 14 sept. 2007 à 18:14
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
A voir également:

6 réponses

Bonjour,

il ne te manquerais pas une commande 'ls' tant ton script ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 sept. 2007 à 17:21
Salut,

La négation s'obtient avec "!" (point d'exclamation) :
#!/bin/sh
prefix="OGL_"
for file in [!$prefix]*
do
  echo $file
done
;-))
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 17:53
tu peut en dire plus stp
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 18:00
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 sept. 2007 à 18:08
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
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 18:14
Merci , ça marche
0