[PLUTO-help] Controllo Stringa

sabpll a libero.it sabpll a libero.it
Ven 9 Apr 2004 19:52:24 CEST


Alle 17:58, giovedì 8 aprile 2004, Pignedoli Luca ha scritto:
> [...] devo fare un
> check su una stringa di dimensione variabile alfanumerica.
>
> Questa stringa mi viene restituita da un software (hylafax x chi lo
> conosce) e puo' essere vuota, con un nome di azienda/persona, numero di
> telefono; io devo testare proprio questo caso, cioe' se la stringa e' un
> numero di telefono allora lancio uno script in perl che mi va' a pescare
> in un db il nome dell'azineda/persona. Il problema e' che questa numero
> di telefono puo' iniziare con uno spazio, un +, un numero, due spazi,
> (finora questi sono i casi che ho incontrato).
>
> Come posso fare per eseguire questo controllo?
>
> E' possibile risolverlo con un semplice script in bash o perl?
> [...]

Penso che basti una semplice espressione regolare per
individuare il numero di telefono, quindi per isolare le 
linee contenenti il numero di telefono dovrebbe funzionare
una semplice pipe:

hylafax | grep -E '^( {0,2}|\+)([0-9]+)'

Il condizionale è di obbligo, poiche sta a te controllare
il programma hylafax e l'output che produce.
Il primo pattern (l'espressione tra parentesi) è 
Se invece ti serve solo il numero di telefono è necessario
usere sed

hylafax | sed -n 's/^\( \{0,2\}\|+\)\([0-9]\+\).*/\2/p'

è necessario proteggere i caratteri "("  "{" "}" ")" "+"
con la barra rovesciata affinché assumino il loro
significato speciale di egrep.
Ovviamente questo è solo un modo, nemmeno molto elegante,
ne esistono altri. Puoi anche scrivere uno script in PERL che ha delle 
espressioni regolari più potenti di grep/egrep
Fino a qui gli spunti, la programmazione spetta a te, però
fammi sapere come hai risolto.
-- 
Sabatino

(w) Quando le cose stanno andando bene, peggioreranno.
(x) Quando le cose stanno andando male, peggioreranno.
(y) Quando le cose non possono andare peggio, peggioreranno lo stesso.
(z) Quando le cose sembrano andar bene, non hai visto quel che è successo.



More information about the pluto-help mailing list