este
ls -l /var/log | awk '{print $9}' | grep "^[a-z]*\.log."
gera isso:
alternatives.log.1
alternatives.log.10.gz
alternatives.log.2.gz
alternatives.log.3.gz
alternatives.log.4.gz
alternatives.log.5.gz
alternatives.log.6.gz
alternatives.log.7.gz
alternatives.log.8.gz
alternatives.log.9.gz
apport.log.1
apport.log.2.gz
apport.log.3.gz
mas isso:
ls -l /var/log | awk '{print $9}' | grep "^[a-z]+\.log."
não produz nada.
Por quê? Acabei de mudar *
para +
. Não é semelhante? O operador +
precisa apenas de pelo menos uma correspondência e *
zero ou mais.