Adicionando linha específica após encontrar uma linha pariticular

0

Eu tenho uma grande base de código contendo 400-500 arquivos. Na maioria dos arquivos temos esse tipo de linhas, <cfcatch type="any"> / <cfcatch type="database"> / <cfcatch> etc. Então o padrão comum é <cfcatch .

Então, o que preciso é que, onde houver um <cfcatch , eu preciso adicionar essa nova linha depois dessa linha, por exemplo, <cfinclude template="test.cfm"> .

Então <cfcatch type="any"> será agora

<cfcatch type="any"> <cfinclude template="test.cfm">

Eu tentei com várias regexs, mas sem sucesso.

    
por Deepak Kumar Padhy 29.05.2016 / 05:45

2 respostas

0

Isso é possível em três etapas:

Etapa 1:

Usando Find in Files , determine uma string que NÃO está contida em nenhum arquivo, ou seja, há 0 ocorrências em todos os 500 arquivos. Digamos que você tenha achado que é uma string ***###*** . (Estou evitando cartas para evitar a diferenciação entre maiúsculas e minúsculas, simplificando a solução).

Etapa 2:

Usando Encontrar em arquivos :

  • Localizar: (^\<cfcatch.*$)

  • Substitua por: ***###***

  • Modo de pesquisa:

    • Expressão regular

    • ". matches newliine" opção: desmarcada

Pesquise e substitua todos os arquivos.

Etapa 3:

Usando Encontrar em arquivos :

  • Localizar: ***###***

  • Substitua por: \r\n<cfinclude template="test.cfm">

  • Modo de pesquisa: estendido

Pesquise e substitua todos os arquivos.

Concluído:)

    
por 30.05.2016 / 23:35
0

Com as seguintes suposições:

  • você não tem tags <cfcatch></cfcatch> em uma linha ( <cfinclude... ainda será inserido abaixo!)
  • você não tem <cfcatch/> ( <cfinclude... ainda será inserido abaixo!)
  • você não se importa com a indentação do <cfinclude... inserido

... a solução é:

  • Localizar: (<cfcatch.*)$(\s)
  • Substituir por: <cfinclude template="test.cfm">

Se essas suposições estiverem incorretas, me avise em um comentário e eu corrigirei minha solução para atender a esses requisitos.

    
por 01.06.2016 / 15:02