Usando o quantificador regex com find [duplicate]

2

Eu tenho um conjunto de arquivos em um diretório, todo o formato test[0-9][0-9].txt . Se eu correr

find . -regex ".*/(test)[0-9][0-9]\.txt"

então todos os arquivos são mostrados, mas se eu correr

find . -regex ".*/(test)[0-9]{2}\.txt"

então nenhum é mostrado. O que estou fazendo de errado?!

Eu já fiz uma pesquisa por meio de perguntas anteriores semelhantes, mas não consigo encontrar uma resposta particularmente relevante

    
por ChrisW 23.11.2015 / 13:21

1 resposta

3

Se você estiver usando GNU find, isso deve funcionar para você

 find . -regextype sed -regex "./test[0-9]\{2\}.txt"

Explicação

  • -regextype sed - usa a expressão regular básica do posix (só porque é isso que eu estou familiarizado)
  • ./ - necessário porque find considera todos os caminhos de arquivo em uma pesquisa relativa para começar com esse padrão
  • [0-9]\{2\} - 2 instâncias da classe de caractere [0-9] dígitos com o colchete \{...\} do quantificador com escape - por expressões regulares posix básicas
por 23.11.2015 / 14:22