![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| tester une chaîne de caractères ... | Kaminski | UNIX pour les nuls Questions et réponses | 2 | 02-12-2008 05:37 AM |
| Avec Regex découpage de la chaîne en partie alphanumérique et numérique | ozgurgul | De programmation et de script Shell | 1 | 06-30-2007 10:52 AM |
| Chaîne alphanumérique opérations | lakshmikanth | UNIX pour les nuls Questions et réponses | 3 | 01-05-2007 06:55 AM |
| chaîne de test? | hedrict | UNIX pour les nuls Questions et réponses | 9 | 03-29-2002 03:57 PM |
| chaîne alphanumérique correspondant | sskb | De programmation et de script Shell | 4 | 12-12-2001 10:48 AM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Bon je vais laisser les utilisateurs des espaces d'entrée ainsi
![]() J'ai un blocage mental. J'ai fait quelques recherches mais n'ai pas trouvé tout ce que je comprends (les goûts de: alpha: et awk). Fondamentalement, je veux donner à l'utilisateur une option pour entrer du texte qui restera comme un champ au sein d'un fichier plat (ce qui est delimeted par:). Je tiens à les limiter à 50 caractères (je crois que je peux utiliser typeset-Z50 pour cela) J'ai également veux juste az, AZ, (les espaces) et les chiffres. Quel est le meilleur moyen de valider l'entrée? |
|
||||
|
Une façon consiste à utiliser tr Pour supprimer des types de caractères indésirables. -DC supprime tout à part les types de caractères que vous spécifiez. [: alnum;] est alphanumérique, donc si vous vérifiez la longueur de la ficelle, il devrait rester inchangé si elle contient uniquement les types de char que vous voulez.
Code:
# t is the input string, ck is a variable to check the contents of t
t="thisisa555ctest"
ck=$( echo "$t" | tr -dc '[:alnum:]')
if [[ ${#t} -eq ${#ck} ]]; then
echo "ok"
else
echo "not ok"
exit 1
fi
# t is all good chars at this point
# check length of t
if [[ ${#t} -gt 50 ]]; then
echo "not ok too long"
fi
|
|
||||
|
Crois que j'ai craqué
J'utilise ce code. Les essais que j'ai fait ne semble fonctionner.
while true faire clair echo "Enter Text: \ c" t lu case $ t en + ([az] | [AZ] | [0-9] | [ ''])) echo chaîne de test est correct pause ;; *) chaîne de test echo Not Okay sleep 2 ;; esac fait |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|