Vérifier que les données tapées sont adéquates? [Shell/Ksh] - Shell/Batch - Programmation
Marsh Posté le 05-06-2003 à 18:48:49
Personne n'a une petite idée? J'ai rien trouvé de probant sur internet et j'ai pas accès à des bouquins ici... 
Marsh Posté le 10-06-2003 à 09:12:49
J'ai un truc!!  
 
 
VAR=`echo VAR | awk --posix '/[a-zA-Z]{4}/ {print}'` 
 
te met la valeur de VAR à vide, si VAR ne contenait pas 4 lettres (majuscules ou minuscules) 
 
c'est sans doute pas parfait, mais bon, ça marche.
Marsh Posté le 10-06-2003 à 12:48:30
A-Da-d 4 fois avec des
| Code : 
 | 
 intercalés plutôt? 
et rajouter une condition presuqe identique (le cas "5 fois" ) pour valider l'entrée
Marsh Posté le 10-06-2003 à 13:33:35
Ah ouais, y'a pas le cas "5 lettres".....Là, ca va reconnaitre tout ce qui contient 4 lettres qui se suivent.... 
 
awk '/^[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]$/ {print}' 
 
sinon.... 
 
 
ou  
awk --posix '/^[a-zA-Z]{4}$/ {print}' 
 
ça marche aussi.
Marsh Posté le 10-06-2003 à 14:42:18
J'avais zappé le $ ... shame on me!   
  
| caedes a écrit : Par exemple, il peut taper :  | 
 
 
Mais il faut toujours les espaces intercalés d'après son exemple ou mieux [ : whitespace : ]
Marsh Posté le 10-06-2003 à 15:02:29
Ah, j'avais pas vu le truc des espaces entre les lettres!!  
Enfin, avec un mix de mon machin et des tiens, il devrait s'en sortir, quand même!! 
Marsh Posté le 10-06-2003 à 15:03:21
Je vous remercie tous pour votre aide ! 
 
Je vais soumettre ceci à la personne que j'aidais...  
 
 
Merci encore ! 
 
  
 
Marsh Posté le 10-06-2003 à 15:15:45
euh rien à voir avec le topic, mais... 
Caedes, c LA Caedes d'AC1 ?  
 
 
sinon tant pis 
Marsh Posté le 10-06-2003 à 15:20:55
| pilou51 a écrit : euh rien à voir avec le topic, mais...  | 
 
AC1? 
Euh non je suis un garçon, voir dico latin pour la signification du pseudo... 
Dire qu'il y a 5 ans sur internet il n'y avait qu'un Caedes francophone (même ds ICQ)...   
  
 
donc à mon avis tu te trompes de personne...   
 
Marsh Posté le 05-06-2003 à 12:37:03
Bonjour !

voilà, j'ai un petit problème en programmation Shell.
Je dois demander à l'utilisateur de taper 4 lettres sur la même ligne et je dois lui refuser toute autre chose et toute autre lettre.
Par exemple, il peut taper :
a b c d
A B D c
B D a C
a a a a
A A D C
mais pas :
Abcd
a b c d e
e e e e
a e c d
ab cd
etc.
Et je ne vois vraiment pas comment faire...
Le reste de mon boulot fonctionne correctemnent (toutes les boucles, etc.) mais les entrées sorties en shell, j'y arrive pas.
j'ai essayé avec des = [^ ... ] mais sans succès.
Une aide?
merci !
Message édité par Caedes le 05-06-2003 à 12:38:02