Você pode "ancorar" o início do nome do arquivo incluindo uma barra no padrão regex:
find /foo/bar/ -regex '.*/baz\d'
Isso garantirá que você só receba arquivos como baz1
, e não bazbaz1
.
Estou tentando usar find
com a opção regex
. No entanto, minha expressão regular captura apenas o nome de base do arquivo. Existe uma referência à "localização de diretório atualmente em" que posso usar em minha expressão regular para que eu não precise considerá-la por meio de um .*
principal?
(Estou procurando algo parecido com o módulo $File::Find::dir
in perl
' File::Find
).
Como exemplo: suponha que eu queira encontrar todos os arquivos correspondentes à expressão regular baz\d
em qualquer lugar abaixo de /foo/bar/
. Usar find /foo/bar -regex 'baz\d'
não encontrará um arquivo chamado baz1
at /foo/bar/
porque o padrão baz\d
não corresponde ao nome de arquivo completo /foo/bar/baz1
, portanto, estou usando find /foo/bar -regex '.*baz\d'
, que funciona, mas eu Estou me perguntando se eu posso substituir esse .*
com algo mais robusto?
Tags find