ciao ho un grosso problema con le regular expression 


dati i file nella dir :
codice:
1.txt
a
a.*
appppppppppj.txt
arpiero.txt
a.txt
col.txt
cool.txt
coooooooool.txt
il ppppp ddsa l.txt
kola.txt
p2
pall.txt
.....
il comando ls | grep a.*
non mi restituisce nulla , mentre io gli sto dicendo a seguito da qualsiasi carattere ripetuto 0 o più volte
mentre
ls | grep "a.*" restituisce 9 risultati
codice:
a
a.*
appppppppppj.txt
arpiero.txt
a.txt
il ppppp ddsa l.txt
kola.txt
pall.txt
e ls | egrep "a.{3}" restituisce 6 risultati
codice:
appppppppppj.txt
arpiero.txt
a.txt
il ppppp ddsa l.txt
kola.txt
pall.txt
per quale motivo sono costretto a mettere il double quoting con le regular expression? quando è obbligatorio usarlo?
perchè io impongo a grep 3 occorrenze del carattere che precede e lui mi trova ad esempio arpiero.txt che di occorrenze di r n ha solo una ?
quando scrivo una regular expression i metacaratteri della shell perdono il loro significato no? es * nella shell significa qualsiasi stringa, mentre nella regular expression
qualsiasi occorrenza del carattere che precede
grazie