[Shell/Ksh]Vérifier que les données tapées sont adéquates?

Vérifier que les données tapées sont adéquates? [Shell/Ksh] - Shell/Batch - Programmation

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 !  :hello:


Message édité par Caedes le 05-06-2003 à 12:38:02
Reply

Marsh Posté le 05-06-2003 à 12:37:03   

Reply

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... :(

Reply

Marsh Posté le 10-06-2003 à 09:12:49    

J'ai un truc!! :D
 
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.

Reply

Marsh Posté le 10-06-2003 à 12:48:30    

A-Da-d 4 fois avec des

Code :
  1. :whitespace:

intercalés plutôt?
et rajouter une condition presuqe identique (le cas "5 fois" ) pour valider l'entrée


Message édité par phosphorus68 le 10-06-2003 à 12:51:12
Reply

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.

Reply

Marsh Posté le 10-06-2003 à 14:42:18    

J'avais zappé le $ ... shame on me!  :sweat:  

caedes a écrit :

Par exemple, il peut taper :
a b c d
mais pas :
Abcd


 
Mais il faut toujours les espaces intercalés d'après son exemple ou mieux [ : whitespace : ]

Reply

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!! :D

Reply

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 !
 
 :hello:

Reply

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 :p

Reply

Marsh Posté le 10-06-2003 à 15:20:55    

pilou51 a écrit :

euh rien à voir avec le topic, mais...
Caedes, c LA Caedes d'AC1 ? :)
 
sinon tant pis :p


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)...  :sweat:  
 
donc à mon avis tu te trompes de personne...  :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed