39 votos

¿Cómo puedo agregar un número al final de cada línea en Notepad ++?

Tengo 23,000 líneas, y necesito agregar el número 1 al final de cada línea.

¿Cómo puedo hacer esto?

En este momento:

[línea1]TEXTO
[línea2]TEXTO

Lo que quisiera:

[línea1]TEXTO1
[línea2]TEXTO1

2 votos

Más interesante; ¿cómo asignarías números secuenciales a líneas secuenciales? :-)

1 votos

@CarlWitthoft Numerar las líneas con el paquete TextFX (TextFx > TextFx Tools > Insert Line Numbers) y luego mover los números de línea al final de la línea con una regexp.

2 votos

¿Si hay una línea vacía entre 2 líneas de texto, esa línea también debería recibir un 1?

30voto

DavidPostill Puntos 30286

¿Cómo puedo agregar un número al final de cada línea en Notepad++?

  • Menú "Buscar" > "Reemplazar" (o Ctrl + H)

  • Establece "Buscar" en \r\n

  • Establece "Reemplazar con" en 1\r\n

  • Habilita "Expresión regular" o "Extendido"

    Nota - "Expresión regular" es un superconjunto de "Extendido" por lo que en este caso en particular no importa cuál uses.

  • Haz clic en "Reemplazar todo"

Inserta aquí la descripción de la imagen

Notas:

  • Lo anterior asume que estás editando un archivo de texto con saltos de línea de Windows, \r\n.

  • Si estás usando archivos con diferentes saltos de línea puedes convertirlos a saltos de línea de Windows usando Menú "Editar" > "Conversión de EOL".

  • Si no estás trabajando con saltos de línea de Windows, y no deseas convertirlos, utiliza lo siguiente en su lugar:

    • Usa \n en lugar de \r\n para saltos de línea de Unix/OS X ("Buscar" es \n, "Reemplazar con" es 1\n)

    • Usa \r en lugar de \r\n para saltos de línea de Mac OS (hasta la versión 9) ("Buscar" es \r, "Reemplazar con" es 1\r)


Lecturas adicionales

0 votos

Esto solo funciona si el delimitador de línea es de Windows, \r\n.

5 votos

Sí, pero Notepad++ es un programa de Windows... ;)

5 votos

Oh tienes razón ... :) Aún así, el archivo de texto podría tener otro tipo de codificación de salto de línea ;)

19voto

V.S. Puntos 1

Otra opción es la característica de grabación y reproducción.

  1. Con el cursor en la primera línea, haga clic en 'Comenzar grabación'
  2. Escriba End, 1,
  3. Haga clic en 'Detener grabación'
  4. Haga clic en 'Ejecutar una macro varias veces...'
  5. Seleccione 'Ejecutar hasta el final del archivo' y haga clic en Ejecutar
  6. ¡Listo!

Capturas de pantalla

grabación y reproducción

Escriba End, 1,

Hacer clic en detener

Ejecutar Macro

introducir descripción de la imagen aquí

Hecho

9 votos

Notepad++ macros nunca reciben suficiente amor.

16voto

Zaheylu Puntos 402

Respuesta actualizada:

Pulsa Ctrl + H para abrir el cuadro de diálogo de Reemplazar.

Bajo modo de búsqueda, marca Expresión Regular.

Buscar: $

Reemplazar por: 1

Luego pulsa en Reemplazar todo


Respuesta original

Pulsa Ctrl + H para abrir el cuadro de diálogo de Reemplazar.

Bajo modo de búsqueda, marca Expresión Regular.

Buscar: ^.*$

Reemplazar por: ($0)1

Luego pulsa en Reemplazar todo

Explicación

Estás buscando la expresión regular ^.*$, que básicamente es toda la línea. ^ marca el inicio de una línea, .* incluye cualquier carácter cualquier número de veces y $ marca el final de la línea. Por lo tanto, esta expresión regular encuentra todo el contenido en cada línea.

Reemplazamos esta expresión con ($0)1, siendo $0 la expresión encontrada, y añadiéndole un 1.

3 votos

Encuentra = $ y reemplaza = 1 es suficiente.

10voto

banavalikar Puntos 153

O hazlo como los grandes chicos :).

Selecciona la última columna usando Shift + Alt => tecla derecha (una vez) => tecla abajo (presiona hasta la última línea).

Escribe lo que quieras. Aparecerá en todas las líneas a la vez.

0 votos

Iba a decir esto también... ¿por qué toda la expresión reg regular compleja? esta responde perfectamente a la pregunta... ¿y por qué la votación negativa? ¿porque alguien simplemente no entendió que es una respuesta válida? O.o

2 votos

Esto puede no ser práctico para 23,000 líneas (demasiado lento o de lo contrario (problemas de memoria debido a algoritmos del pintor Shlemiel?)). ¿Lo has intentado realmente con 23,000 líneas?

2 votos

@PeterMortensen Horriblemente lento, pero el uso de memoria está bien (5 MB => 25 MB). El problema principal es que no parece manejar bien las longitudes de línea diferentes.

2voto

mindeavor Puntos 2154

Modo Extendido.

Quería agregar un enfoque ligeramente diferente que no se menciona en otras respuestas: Modo Extendido.

Para cosas como esta, donde todo lo que te preocupa son \r, \n, \t u otros incluidos en esta pequeña lista (aunque esa página parece estar "anticuada", así que no estoy 100% seguro de su veracidad) no hay razón para recurrir a una expresión regular completa.

Suelo usar el modo extendido de Notepad++ "a menudo" para ajustar el diseño de archivos, principalmente centrado en eliminar múltiples líneas vacías, espacios en blanco adicionales y otras rarezas diversas.

Extendido

  1. Menú "Buscar" > "Reemplazar" (o Ctrl + H)
  2. Determina qué finales de línea deseas
  3. En "Buscar", pon:
    • \r\n para Windows
    • \r para versiones antiguas de MacOS (9 o anteriores)
    • \n para Unix o versiones más nuevas de MacOS (OS X o más recientes)
  4. Establece "Reemplazar con" a
    • 1\r\n para Windows
    • 1\r para versiones antiguas de MacOS (9 o anteriores)
    • 1\n para Unix o versiones más nuevas de MacOS (OS X o más recientes)
  5. Activa "Extendido"
  6. Haz clic en "Reemplazar todo"

0 votos

"La 'expresión regular' es un superconjunto de 'extendida', por lo que en este caso particular no importa cuál uses."

0 votos

¿No debería ser \n para Unix y \r para versiones más antiguas de MacOS? Primer punto de Wikipedia: en.wikipedia.org/wiki/Newline#Representations

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X