Notepad ++ buscar y reemplazar cadenas con una nueva línea

212

Considere el escenario en el que tiene una cadena específica que desea buscar y reemplazar. Desea reemplazarlo con una nueva cadena que contiene un carácter de nueva línea (o secuencia de caracteres).

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

En el escenario anterior, me gustaría encontrar " xyz" y reemplazar el espacio con un retorno de carro / nueva línea.

Los resultados se verían así:

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

etc ...

Pregunta: ¿Cómo lograría esto más fácilmente con Notepad ++? ¿Hay alguna otra herramienta que sugiera para ejecutar fácilmente este comando?

p.campbell
fuente

Respuestas:

279

Notepad ++ funcionará bien.

Cadena de búsqueda:

 xyz
Tenga en cuenta el espacio en frente de xyz.

Reemplazar cadena:

\ r \ nxyz

También deberá establecer el "Modo de búsqueda" en "Extendido" (cuadro de grupo inferior izquierdo en el cuadro de diálogo Reemplazar ) para que Notepad ++ respete los códigos de escape.


Algunos antecedentes: "\ r \ n" es el código de escape para el retorno de carro, el estándar para nuevas líneas en Windows. Los sistemas de estilo Unix usan simplemente \ n (nueva línea). La mayoría de los IDE, incluido Notepad ++, comprenderán ambos estilos y los representarán con líneas nuevas, pero las utilidades principales de Windows no entienden que \ n es equivalente a \ r \ n, por lo que este último suele ser el más apropiado si el archivo está destinado a ser utilizado en entornos de Windows.

monstruo
fuente
2
\ r \ n = Sintaxis de nueva línea de Windows. Sin embargo, para todo lo que no sea un bloc de notas antiguo, aceptará solo \ n para una nueva línea (que también es más convencional).
Macha
3
Su frase "más convencional" es engañosa. "\ r \ n" es el estándar en Windows. Es solo que muchos editores e IDEs reconocen la línea estándar de Unix / Linux que termina "\ n" y muestran el documento en consecuencia. No hay nada acerca de "\ n" que lo haga más convencional.
Brian Lacy
Para ser sincero, la versión Win / DOS tiene más sentido para mí. "\ r" significa "Retorno de carro, o 'Retorna el carro / cursor al comienzo de la línea'" y "\ n" significa "Avanzar el carro / cursor una línea hacia adelante". Por supuesto, Unix llegó 20 años antes, así que supongo que en ese sentido es Microsoft quien rompió el estándar.
Brian Lacy
77
esto no funcionará a menos que establezca el modo de búsqueda, como se especifica en la otra respuesta: superuser.com/questions/34451/...
codeulike
77
Si está tratando de reemplazar la cadena literal "\ r \ n" con una nueva línea real, tuve que hacer lo siguiente: establecer el modo de búsqueda en normal, buscar / reemplazar \ r \ n con ***. Luego establezca el modo de búsqueda en Extendido, busque / reemplace *** con \ r \ n.
goku_da_master
61

En Notepad ++, es muy fácil ...

  • Buscar: xyz
  • Reemplazar con: \ n


  • Modo de búsqueda: extendido (\ n, \ t, etc.)

El truco es establecer el modo de búsqueda.

th3dude
fuente
1
Esta respuesta funcionó para mí, la aceptada no. Ver 5.8.6
bdwakefield
Sí mismo aquí, la respuesta aceptada no especificó el uso del modo extendido ..
Andy
¿Por qué no \r\n(en lugar de \n)?
Peter Mortensen
5

Hago un poco de trampa cuando los caracteres S & Ring que no puedo escribir directamente en los campos de texto (por ejemplo, pestañas y líneas nuevas). Busque en algún lugar del documento que ya tenga ese carácter, luego cópielo y péguelo en el campo de reemplazo.

Entonces, en su ejemplo, comience desde el comienzo de una línea, haga clic, arrastre hasta el final de la línea anterior, cópielo y péguelo en el cuadro de diálogo Reemplazar.

Macha
fuente
5

En el cuadro de diálogo "Reemplazar", asegúrese de que en Modo de búsqueda haya seleccionado "Extendido". Luego escriba en el cuadro de búsqueda, ingrese "xyz" y reemplácelo con "\ n".

tj111
fuente
1
¿Por qué no \r\n(en lugar de \n)?
Peter Mortensen
2

Para Notepad ++, cambie el modo de búsqueda a Extendido y luego en el campo Reemplazar con use \ n .

dlux
fuente
1
¿Por qué no \r\n(en lugar de \n)?
Peter Mortensen