corresponde a arquivos baseados em um md5 usando find

4

Eu tenho um monte de arquivos js e css em um diretório. Alguns deles receberam um nome baseado em um md5 () de seu conteúdo (parece com f10521a21bb013cb81e0909809818ad6.js ). Eu gostaria de combinar esses arquivos usando o find. Por que isso retorna 0 resultado?

find -regex "^[A-f0-9]{32}\.(?:js|css)$"
    
por code_monk 04.05.2012 / 18:46

1 resposta

8
  • A expressão regular é correspondida ao caminho, não apenas ao nome do arquivo, portanto, não ancore-o no início da string.
  • A expressão regular padrão do tipo emacs parece não gostar de intervalos. Escolha outro.
  • Nenhum outro tipo de expressão regular parece gostar dos grupos que não capturam.

Estes trabalhos, supondo que você esteja usando o GNU find :

find . -regextype posix-awk -regex ".*/[a-f0-9]{32}\.(js|css)$"

find . -regextype posix-basic -regex ".*/[a-f0-9]\{32\}\.\(js\|css\)$"

find . -regextype posix-egrep -regex ".*/[a-f0-9]{32}\.(js|css)$"

find . -regextype posix-extended -regex "/[a-f0-9]{32}\.(js|css)$"
    
por 04.05.2012 / 19:05