Find: Referência ao diretório atual

3

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?

    
por Isaac Kleinman 04.12.2012 / 20:36

1 resposta

3

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 .

    
por 04.12.2012 / 22:51

Tags