Expressão regular para excluir arquivos duplicados

2

Eu quero excluir todos os arquivos duplicados.

Quando um arquivo é duplicado, é escrito assim:

  1. name.doc
  2. nome (2) .doc
  3. nome (3) .doc

... e devo manter apenas o arquivo chamado name.doc . Os outros arquivos devem ser excluídos.

Qual é a expressão regular para encontrar todos os arquivos com (número) como o nome (2) .doc?

Um caractere de espaço está presente entre o arquivo de nome e a notação (número) .

Obrigado pela sua ajuda porque não encontro a boa expressão regular.

Até breve.

    
por Mister Nono 18.08.2017 / 13:40

1 resposta

0

Existem maneiras muito melhores de usar o regex para encontrar arquivos duplicados, mas para responder à sua pergunta:

/.*\ \(\d*\)\.[A-za-z]*/g

O que corresponde:

.         any character except newline
*         any number of the previous character
\ \(\d*\) first a space, then a (, then any digit, then a )
\.        dot
[A-za-z]* any number of letters (for the extension)

Você pode testar as coisas aqui .

Uma boa maneira de testar é usar o CMD para criar um arquivo de texto com todos os nomes de arquivos de uma pasta e depois colá-los no site que mencionei. Você pode fazer isso abrindo o CMD, movendo-se para uma pasta com muitas cópias (usando cd nome da pasta para navegar) e digitando dir > filenames.txt .

Você encontrará um arquivo chamado filenames.txt na pasta, do qual você pode copiar todos os nomes de arquivos para regexr.com para que você possa ver quais arquivos serão correspondidos pela regex que forneci.

    
por 18.08.2017 / 14:19

Tags