¿Reemplazar nuevas líneas con un delimitador de coma con Notepad ++?

165

Tengo una pregunta de Notepad ++.

¿Cómo puedo tomar las siguientes palabras en Notepad ++ (que está en diferentes líneas)

Apples
Apricots
Pear
Avocados
Bananas

¿Y convertirlos en un párrafo con una coma al final de cada uno? Me gusta esto:

Apples, Apricots, Pear, Avocados, Bananas
usuario2231530
fuente

Respuestas:

325

Abra el cuadro de diálogo Buscar y reemplazar (presione CTRL+ H).

Luego seleccione Regular expressionen la sección 'Modo de búsqueda' en la parte inferior.

En el Find whatcampo ingrese esto:[\r\n]+

En el Replace with:

Hay un espacio después de la coma.

Esto también reemplazará líneas como

Apples

Apricots
Pear

Avocados
Bananas

Donde hay líneas vacías.

Si sus líneas tienen espacios en blanco al final, debe eliminarlas primero. La forma más sencilla de lograr esto es

EDIT -> Blank Operations -> Trim Trailing Space

O

TextFX -> TextFX Edit -> Trim trailing spaces

Asegúrese de establecer el Modo de búsqueda en "Expresión regular".

Bonifacio2
fuente
Si hay espacios finales en la línea, es posible que lo haga _*[\r\n]+. Para lidiar con las líneas en blanco convertidas en comas en exceso, puede hacer una búsqueda de expresiones regulares para ,_[,_]+reemplazarlas ,_. Alternativamente, el paquete TextFx tiene un comando para eliminar líneas en blanco que se puede usar antes de agregar las comas. (Tenga en cuenta que el cambio pone de relieve los espacios en estos bloques de código).
AdrianHHH
Sí, tienes mucha razón. Solo estaba tratando de dar una respuesta minimalista. Tal vez debería editar la respuesta entonces.
2
Esto no funciona para mí: veo "0 casos fueron reemplazados".
Iain Samuel McLean Élder
3
@IainElder, el modo de búsqueda debe establecerse en "Expresión regular" en lugar de "Normal" o "Extendido".
Scott Lawrence
Tuve el mismo resultado que Iain.
dhochee
34

Esto es lo que funcionó para mí con una lista similar de cadenas en Notepad ++ sin macros ni nada más:

  1. Haga clic en Editar -> Operaciones en blanco -> EOL para espaciar [Todos los elementos ahora deben estar en una sola línea separada por un 'espacio']

  2. Seleccione cualquier 'espacio' y haga un Reemplazar todo (por ',')

trishulpani
fuente
Simple y elegante, agradable
reggaeguitar
@trishul Realmente agradable.
himanshupareek66
32

La respuesta de fapDaddy usando una macro me señaló en la dirección correcta.

Esto es precisamente lo que funcionó para mí.

  1. Coloque el cursor después del primer elemento de datos. ingrese la descripción de la imagen aquí

  2. Haga clic en 'Macro> Iniciar grabación' en el menú. ingrese la descripción de la imagen aquí

  3. Escribir esta secuencia: Comma, Space, Delete, End.ingrese la descripción de la imagen aquí

  4. Haga clic en 'Macro> Detener grabación' en el menú. ingrese la descripción de la imagen aquí

  5. Haga clic en 'Macro> Ejecutar una macro varias veces ...' en el menú. ingrese la descripción de la imagen aquí

  6. Haga clic en "Ejecutar hasta el final del archivo" y haga clic en "Ejecutar". ingrese la descripción de la imagen aquí

  7. Elimina los caracteres finales. ingrese la descripción de la imagen aquí

  8. ¡Hecho!

ingrese la descripción de la imagen aquí

Iain Samuel McLean Anciano
fuente
55
Este método es lento para miles de elementos de datos.
Iain Samuel McLean Élder
Gran respuesta. Gracias :)
Peter T.
Esa gran información será útil en muchas situaciones similares. ¡Gracias!
Moin
Gracias por compartir la información. Es interesante.
ironman
4

Para Notepad ++ 5.9

  1. Presione Ctrl + H
  2. Seleccione Modo de búsqueda extendido (\ n, \ r, \ t, \ o, \ x ...)
  3. Ingrese Buscar qué: \ r \ n
  4. Introduzca Reemplazar con: ,
  5. Reemplazar_todos debería obtener el resultado requerido.
ketan27j
fuente
3
Esta respuesta repite la respuesta aceptada y esta respuesta se refiere a una versión antigua de Notepad ++, la versión 7.4.x ya está disponible. Bienvenido a Stack Overflow, pero haga que sus respuestas proporcionen nueva información o den nuevas ideas. Repetir las respuestas existentes no es útil.
AdrianHHH
Para las versiones más nuevas de npp, esta es la mejor manera de hacerlo.
nurdyguy
Esta es la respuesta más fácil. No debería tener que pasar al modo de expresión regular solo para reemplazar las nuevas líneas con comas. N ++ realmente funciona correctamente, mientras que otros editores interpretan "\ n" como un retorno de carro Y un avance de línea, lo que me confundió al principio.
BrianVPS
3

Coloque el cursor después de Manzanas , en la pestaña Macro , seleccione Iniciar grabación . Escriba el carácter de coma ( , ), el espacio () y presione la tecla Fin , en la pestaña Macro, seleccione Detener grabación .

Ctrl + Shift + P para reproducción única.

viclim
fuente
Gracias por ese consejo. ¿Qué pasa si tengo 5000 ++ palabras? ¿Necesito ejecutar la macro para todos ellos individualmente? ¿Hay un método más fácil?
user2231530
Si tendrá que realizar una tarea similar en el futuro, es posible que desee escribir un script para ello. La salida fácil es probablemente simplemente ir a la pestaña Macro y seleccionar ejecutar la macro varias veces. Se hará en segundos.
viclim
+1 Tu respuesta me señaló en la dirección correcta. En mi respuesta documenté exactamente lo que funcionó para mí.
Iain Samuel McLean Élder
2

Esto puede sonar extraño, pero puede eliminar la siguiente línea copiando todo el texto y pegándolo en la barra de búsqueda de Firefox, y luego volviéndolo a pegar en el bloc de notas ++

paso 1

paso 2

Dipin prakash
fuente
1
Por favor, mejora esta respuesta. Los enlaces a las imágenes no serán útiles.
Dibujó el
2

USE la barra de búsqueda de Chrome

1-presione CTRL F
2-pegue el texto copiado en la barra de búsqueda
3-presione CTRL Aseguido de CTRL Cpara copiar el texto nuevamente desde la búsqueda
4-pegue en Notepad ++
5-reemplace 'space'con','

1 clic para la imagen
2-click para imagen

Mohsin Mahmood
fuente
0

Puede usar la línea cc.rnl ', 'de comando de ConyEdit (un complemento) para reemplazar nuevas líneas con el contenido que desee.

Polla
fuente
0

Un partido de expresiones regulares con \s+funcionó para mí:

ingrese la descripción de la imagen aquí

usuario3673
fuente
Por cierto: me parece que una coincidencia de expresiones regulares $^debería funcionar, pero, en cambio, coincide ^$.
user3673
Usar la opción "Extendida" justo arriba de la opción "Expresión regular" (en su captura de pantalla) es en realidad la forma más fácil de lograr esto.
nurdyguy