Re: FT: maiuscole/minuscole sed e awk
On Thu, Aug 29, 2002 at 10:02:38AM -0700, alberto wrote:
> possibile che in uno script sed, per cercare una parola (THEN)
> indipendentemente dal tipo maiuscolo/miniscolo debba fare cosi'?
>
> /[Tt][Hh][Ee][Nn]/s/PIPPO/PLUTO/
Ne` sed ne` awk (ne` nawk) hanno la funzione case-insensitive-match.
gawk puo` fare match case-insensitive, basta settare a un valore non
nullo la variabile IGNORECASE.
Se non [pv]uoi usare gawk, puoi dichiarare nel tuo script awk questa
funzione:
function imatch(string, regex)
{
lstring=(tolower (string))
lregex=(tolower (regex))
return (match(lstring, lregex))
}
ed usara piu` o meno come la funzione match(), ma solo nella forma
imatch(stringa_in_cui_cercare, "regular_expression"), e *non* nella
forma imatch(stringa_in_cui_cercare, /regular_expression/).
(Perche'? Esercizio per il lettore!) ;-)
E quindi, se vuoi semplicemente tentare il match nella riga corrente:
imatch($0, "regular_expression"). Anzi, se vuoi sempre e solo tentare il
match nella riga corrente puoi semplificare la funzione:
function imatchcurrent(regex)
{
lstring=(tolower ($0))
lregex=(tolower (regex))
return (match(lstring, lregex))
}
in questo modo la sintassi diventerebbe imatch("regular_expression")
semplicemente.
Quindi, { if (imatch($0, "regular_expression)) sub(eccetera...) } .
Ciao,
/dev/null
Reply to: