Então o problema é: por que a_[a-z]*_data
combina a_clean_0db_data
?
Isso pode ser dividido em quatro partes:
a_
coincide com o início de a_clean_0db_data
, deixando clean_0db_data
para ser correspondido
[a-z]
corresponde a qualquer caractere no intervalo a-z
(por exemplo c
), deixando lean_0db_data
a correspondência
*
corresponde a qualquer número de caracteres, por exemplo lean_0db
_data
corresponde ao final _data
Em expressões regulares, [a-z]*
significaria qualquer número de caracteres (incluindo zero) no intervalo de a..z , mas você está lidando com globbing de shell, não com expressões regulares.
Se você deseja expressões regulares, algumas find
implementações têm um -regex
predicado para isso:
find . -maxdepth 1 -regex "^.*/a_[a-z]*_data$"
O -maxdepth
é aqui apenas para limitar os de resultados de pesquisa para a pasta em que está. A expressão regular corresponde a toda filename, portanto, eu adicionei um ^.*/
para corresponder ao caminho-parte