o texto localiza linhas de pesquisa para combinações de texto e substitui adequadamente

0

Eu tenho uma classe de rede que permite exportar seu log de atividades. algo parecido com isto

switch(config)# int f0/1
switch(config-line)# ip address 192.168..
*configured on 12.6.2017*

se o '#' e o texto antes de serem removidos e as linhas de texto de confirmação (ou outro texto de resposta) então parece que

int f0/1
ip address 192.168..

Eu posso colá-lo em outro (ou no mesmo switch) que um arquivo de configurações. Ele aplicará todos os argumentos em uma linha por vez e será configurado de acordo.

Gostaria que um aplicativo ou script pesquisasse arquivos de log em um modelo / "lista de expressões"  para excluir as hashtags e o texto anterior em todas as linhas, mantendo o texto após a hashtag inalterada. também será útil se puder remover linhas que não tenham hashtags na primeira passagem ou contenham certos caracteres como "!"

ideias? alguém ...

    
por Ace Trades 07.12.2017 / 05:40

3 respostas

1

 sed -n -e '/[!Qq]/d' -e 's/.*#//p'

imprimirá as partes das linhas que seguem um # , ignorando linhas que não contêm # ou que faça contenha ! , Q ou q .

O -n indica sed para não imprimir linhas, exceto quando explicitamente informado para fazer isso. O /[!Qq]/d diz para deletar linhas contendo qualquer um dos caracteres entre o [ e o ] (então edite essa lista para qualquer caractere que você queira rejeitar); isto é, removê-los da consideração posterior. O s/.*#//p pesquisa uma sequência de caracteres terminando com # , exclui e imprime a linha. Linhas que não contêm # falharão nesta etapa e, portanto, não serão impressas.

    
por 07.12.2017 / 06:08
1

O Notepad ++ (Windows) tem a capacidade de gravar substituições de texto como macros, bem como usar expressões regulares para essas substituições (embora você obviamente não precise). No caso mais simples, você simplesmente começaria a gravar a macro, destacaria o texto para substituir, e. switch(config)# , Substituir tudo por um campo de substituição em branco e parar a gravação. A macro pode então ser salva com um nome personalizado para reprodução posterior. O bom disso é que etapas únicas ou múltiplas podem ser registradas (assim, várias substituições sequenciais podem ser gravadas individualmente ou em uma macro, conforme necessário).

Em relação ao script real, o Python provavelmente seria uma solução de plataforma cruzada relativamente simples (supondo que valesse a pena desenvolver um script personalizado para sua tarefa). Um arquivo de texto pode conter itens para substituir ou outras instruções (seu "modelo"). O Python tem ferramentas de string bastante robustas que seriam, sem dúvida, um bom ajuste para esse tipo de trabalho.

    
por 07.12.2017 / 06:39
0

No editor CudaText (gratuito, multiplataforma), você pode fazê-lo via plugin Extract Strings . Instale este plugin através do AddonManager, depois chame "Plugins - Extract Strings". Na caixa de diálogo, insira regex para encontrar o texto depois de #:

(?<=\#).+

O plug-in mostrará hashtags encontradas, você pode colocá-las em uma nova guia vazia.

    
por 08.12.2017 / 06:24