Questão Notepad ++ encontra e substitui string por uma nova linha


Considere o cenário em que você tem uma string específica que deseja localizar e substituir. Você deseja substituí-lo por uma nova string que contenha um caractere de nova linha (ou sequência de caracteres).

abc123 xyz456-blah
fsafd23 xyz456-green
89hjkf23 xyz456-red
afdsa23 xyz456-yellow
abaac123 xyz456-orange

No cenário acima, gostaria de encontrar " xyz"e substituir o espaço com um retorno de carro / nova linha.

Os resultados seriam semelhantes:

abc123
xyz456-blah
fsafd23
xyz456-green
89hjkf23
xyz456-red
   ︙

etc ...

Questão: Como você conseguiria mais facilmente isso usando o Notepad ++? Existem outras ferramentas que você recomendaria para executar facilmente este comando?


194


origem




Respostas:


O Notepad ++ vai funcionar bem.

Seqüência de pesquisa:

 xyz
 Observe o espaço na frente de xyz.

Substituir string:

\ r \ nxyz

Você também precisará definir o "Modo de pesquisa" para "Estendido" (caixa de grupo inferior esquerdo no Substituir diálogo) para que o Notepad ++ honre os códigos de escape.


Algum fundo: "\ r \ n" é o código de escape para retorno de carro, o padrão para novas linhas no Windows. Sistemas de estilo Unix usam simplesmente \ n (nova linha). A maioria dos IDEs, incluindo o Notepad ++, entenderá ambos os estilos e os retratará com novas linhas, mas os principais utilitários do Windows não entenderão \ n como sendo equivalente a \ r \ n, então o último é geralmente o mais apropriado se o arquivo for destinado a ser usado em ambientes Windows.


261



\ r \ n = Sintaxe da nova linha do Windows. No entanto, para tudo que não seja o notepad antigo, ele aceitará apenas \ n para uma nova linha (que também é mais convencional). - Macha
Sua frase "mais convencional" é enganosa. "\ r \ n" é o padrão no Windows. É que muitos editores e IDEs reconhecem a linha padrão Unix / Linux terminando "\ n" e exibem o documento de acordo. Não há nada sobre "\ n" que o torne mais convencional. - Brian Lacy
Para ser honesto, a versão Win / DOS faz mais sentido para mim. "\ r" significa "Retorno do carro" ou "Retornar o carro / cursor ao início da linha '" e "\ n" significa "Avançar o carro / cursor para frente uma linha". Claro, o Unix veio 20 anos antes, então acho que nesse sentido é a Microsoft quem quebrou o padrão. - Brian Lacy
isso não funciona a menos que você defina o modo de pesquisa, conforme especificado na outra resposta: superuser.com/questions/34451/… - codeulike
Se você está tentando substituir a string literal "\ r \ n" por uma nova linha real, tive que fazer o seguinte: definir o modo de pesquisa para normal, localizar / substituir \ r \ n com ***. Em seguida, defina o modo de pesquisa como Estendido, localize / substitua *** por \ r \ n. - goku_da_master


No Notepad ++, é muito fácil ...

  • Localizar: xyz
  • Substitua por: \ n


  • Modo de pesquisa: estendido (\ n, \ t, etc)

O truque é definir o modo de pesquisa.


59



Esta resposta funcionou para mim, o aceito não. Ver 5.8.6 - bdwakefield
Sim mesmo aqui a resposta aceita não especificou usando o modo estendido .. - Andy
O modo de pesquisa é fundamental, obrigado por postar. - Jrod
Por que não \r\n (ao invés de \n)? - Peter Mortensen


Na caixa de diálogo "Substituir", certifique-se de que no Modo de pesquisa você tenha "Estendido" selecionado. Em seguida, digite na caixa de busca, digite "xyz" e substitua por "\ n".


5



Por que não \r\n (ao invés de \n)? - Peter Mortensen


Eu trapaceio um pouco quando os caracteres S & Ring não podem ser digitados diretamente nos campos de texto (por exemplo, guias e novas linhas). Encontre algum lugar no documento que já tenha esse caractere, copie-o e cole-o no campo de substituição.

Portanto, no seu exemplo, comece no início de uma linha, clique, arraste até o final da linha anterior, copie e cole na caixa de diálogo Substituir.


4





Para o Notepad ++, altere o modo de pesquisa para Estendido então no Substituir com uso em campo \ n.


2



Por que não \r\n (ao invés de \n)? - Peter Mortensen