Como extrair correspondências de regex de um arquivo no windows

3

Eu uso muitas expressões regulares. Estou usando o EditPadpro para todos os meus propósitos de edição. Na maior parte do tempo, terei que extrair todas as correspondências de regex no arquivo para outro arquivo. Existe algum software que possa fazer isso?

Exemplo:

Enquanto trabalha com o arquivo de contatos. Preciso extrair todos os endereços de e-mail para outro arquivo.

    
por claws 11.07.2010 / 08:52

5 respostas

5

RegexBuddy , o produto irmão do EditPad Pro faz isso muito bem através da sua guia Grep. Irá recorrer pelas pastas e extrair correspondências para um arquivo. Também é ótimo para criar e testar expresões regulares.

Use as configurações conforme abaixo:

  • Você pode adicionar o regex de e-mail pré-criado na guia "Biblioteca"
  • Certifique-se de selecionar o botão "Corresponder" na barra de ferramentas superior
  • Insira os detalhes do arquivo na guia "Grep" e selecione "Salvar resultados em um único arquivo"

Você pode testar o regex colando uma seção do seu arquivo na guia "Teste".

  • Pressione "Executar" no menu suspenso "Grep" para executar.

    
por 11.07.2010 / 11:37
2

grep

    
por 11.07.2010 / 08:53
2

Estou surpreso que ninguém tenha percebido findstr ainda. Ele tem pelo menos suporte a expressões regulares rudimentares com a opção /r e existe em todas as versões semi- recentes do Windows (pelo menos até 2000).

    
por 11.07.2010 / 10:42
2

Instale o Cygwin , ele lhe dará um ambiente muito semelhante a um unix no Windows. Então aprenda o grep básico, egrep, awk, sed ou perl. Tempo muito bem investido. Apenas alguns exemplos:

# extract email addresses from text.txt to emails.txt
egrep -o '[[:alnum:].]+@[[:alnum:].]+' < text.txt > emails.txt
# extract third whitespace separated column from lines starting with "DEBUG"
awk '/^DEBUG/ { print $3 }' < text.txt > debug.txt
# replace multiple whitespace characters with one space
perl -pe 's/[\t ]+/ /g' < text.txt > clean.txt
    
por 11.07.2010 / 23:35
1

Muitos editores de texto do Windows (mas não o bloco de notas) incluem funções "Localizar em arquivos" que suportam expressões regulares.

O PowerShell tem Select-String , o que faz correspondência de expressões regulares.

Ou um Windows grep port.

    
por 11.07.2010 / 09:25