![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| test een string ... | Kaminski | UNIX voor Dummies Questions & Answers | 2 | 02-12-2008 05:37 |
| Met Regex Spliting de string in Alfanumerieke en numerieke deel | ozgurgul | Programmeren en Shell Scripting | 1 | 06-30-2007 10:52 |
| Alfanumeriek String Operations | lakshmikanth | UNIX voor Dummies Questions & Answers | 3 | 01-05-2007 06:55 |
| string test? | hedrict | UNIX voor Dummies Questions & Answers | 9 | 03-29-2002 03:57 PM |
| matching alfanumerieke string | sskb | Programmeren en Shell Scripting | 4 | 12-12-2001 10:48 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Oke Ik laat gebruikers input ruimten alsmede
![]() Ik heb een mentale blokkade. Ik heb gedaan een paar zoekopdrachten maar havent iets gevonden dat ik het begrijpen (het graag van: alfa: en awk). In principe wil ik geven de gebruiker een optie om wat tekst die zal ingaan als een gebied binnen een plat bestand invoeren (die delimeted door:). Ik wil dit beperken tot 50 tekens (Ik denk dat ik kan gebruiken gezet voor deze-Z50) Ik wil alleen az, AZ, (plaatsen) en nummers. Wat is de beste manier om de validering van de input? |
|
||||
|
een manier is het gebruik tr om ongewenste karakter soorten te verwijderen. -dc verwijdert alles behalve die eigenschappen, die u opgeeft. [: alnum;] is alfanumerieke, dus als u de lengte van de string moet worden ongewijzigd indien het alleen de tekens die u wilt bevat.
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
|
|
||||
|
Denk dat ik het gekraakt
Ik gebruik deze code. De proeven ik heb gedaan lijkt te werken.
terwijl de werkelijke doen helder echo "Tekst: \ c" lees t case $ t + ([az] | [AZ] | [0-9] | [ ''])) echo test string is oke pauze ;; *) echo test string niet oke slapen 2 ;; esac gedaan |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|