A parte [a-z]
não é o que corresponde ao número; é o *
. Você pode estar confundindo expressões globbing e regulares / a>.
Ferramentas como grep
aceitam vários tipos de regexes ( básico por padrão, -E
para estendido, -P
para regex Perl )
Por exemplo ( -v
inverte o jogo)
$ ls a_[a-z]*_data | grep -v "[0-9]"
a_clean_data
Se você quiser usar um regex bash, aqui está um exemplo de como testar se a variável $ref
é um inteiro:
re='^[0-9]+$'
if ! [[ $ref =~ $re ]] ; then
echo "error"
fi