Notepad ++ - Como remover tudo após a última barra invertida “\” em uma linha em um arquivo de texto

2

Eu tenho uma lista de cerca de 30.000 arquivos (com caminhos) que precisam ser copiados individualmente junto com suas estruturas de pastas. Infelizmente, os caminhos são muito longos e os utilitários de cópia de arquivos que manipularão essa função exigem que eu especifique pastas de destino para cada arquivo, o que significa que preciso remover o nome de cada uma das 30.000 linhas, deixando a estrutura da pasta intacta. / p>

O que eu preciso fazer é encontrar uma maneira de substituir uma expressão regular no Notepad ++ que irá apagar todos os dados em cada linha do documento após a última barra invertida "\" na linha.

Exemplo:

C:\Data\ToCopy\file1.txt
C:\Data\ToCopy\Folder1\file2.txt
C:\Data\ToCopy\Folder2\file3.txt
C:\Data\ToCopy\Folder2\Subfolder1\file4.txt

Saída desejada:

C:\Data\ToCopy
C:\Data\ToCopy\Folder1
C:\Data\ToCopy\Folder2
C:\Data\ToCopy\Folder2\Subfolder1

Alguma idéia de como formatar a expressão para permitir isso? Eu tentei [^"\"]+$ , mas isso parece ser inválido.

    
por Mike S. 16.12.2014 / 22:17

2 respostas

1

Você pode usar um grupo de captura RegEx (indicado pelos parênteses) para capturar todos os caracteres ( .* ) até (e incluindo) a barra ( \ - você precisa 'escapar' da barra com outra barra ), e também inclui o resto dos personagens no jogo Regex (o segundo .* ), já que queremos substituí-los também.

Em seguida, substitua a linha inteira pelo conteúdo de (apenas) esse grupo de captura ( ).

Então, isso funciona para mim:

Localizar: (.*\).*

Substitua por:

Certifique-se de que ". corresponde a nova linha" está desativado.

    
por 16.12.2014 / 22:23
0

Eu respondi minha própria pergunta, espero que isso ajude alguém tentando robocopir uma lista específica de arquivos para sua estrutura de pastas original. Edite a lista no Notepad ++ e use a função replace (selecione 'Regular Expression') e use a seguinte string:

\(?<=\)[^\]+$

Substitua por branco e você está pronto para ir.

    
por 16.12.2014 / 22:35