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


37

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

¿Cómo puedo hacer esto?

Ahora mismo:

[line1]TEXT
[line2]TEXT

Lo que me gustaría:

[line1]TEXT1
[line2]TEXT1

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

1
@CarlWitthoft Numere las líneas con el paquete TextFX (TextFx> Herramientas TextFx> Insertar números de línea) y luego mueva los números de línea a la EOL con una expresión regular.
DavidPostill

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

44
:%s/$/1/. Oh espera, ese es Vim . ;-) (que también está disponible para Windows).
DevSolar

1
@DevSolar Alternativamente, :g/$/norm A1. O el más complejo pero más elegante gg$<C-v>G$A1<esc>. O incluso el ciertamente desagradable ggqqqqqA1<esc>j@qq@q. Más de una forma de hacerlo: P
Pomo

Respuestas:


28

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

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

  • Establezca "Buscar qué" en \r\n

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

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

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

  • Haga clic en "Reemplazar todo"

Ingrese la descripción de la imagen aquí

Notas:

  • Lo anterior supone que se está editando un archivo de texto con EOLs de Windows, \r\n.

  • Si está utilizando archivos con EOL diferentes, puede convertirlos a EOL de Windows mediante el menú "Editar"> "Conversión de EOL".

  • Si no está trabajando con Windows EOL y no desea convertirlos, utilice lo siguiente:

    • Usar en \nlugar de \r\npara EOL de Unix / OS X ("Buscar qué" es \n, "Reemplazar con" es 1\n)

    • Usar en \rlugar de \r\npara Mac OS (hasta la versión 9) EOL ("Buscar qué" es \r, "Reemplazar con" es 1\r)


Otras lecturas


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

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

55
Oh, tienes razón ... :) Aún así, el archivo de texto podría tener otra codificación de final de línea;)
Zaheylu

55
Si no está trabajando con Windows EOL, no hay razón para "convertirlos" ... simplemente use \no en su \rlugar (Unix y Mac EOL respectivamente). \n=> 1\no \r=> 1\r. Hago esto un poco más a menudo con Extended en lugar de Regex personalmente.
WernerCD

2
@WernerCD Debe tenerse en cuenta que \rsolo se aplica al Mac OS desaparecido. No OS X, que utiliza \n.
Bob

19

Otra opción es la función de grabación y reproducción.

  1. Con el cursor en la primera línea, haga clic en 'Iniciar grabación'
  2. Escribir 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. Trabajo hecho

Capturas de pantalla

grabar y reproducir

Escribir End, 1,

Haga clic en detener

Ejecutar macro

ingrese la descripción de la imagen aquí

Hecho


99
Las macros Notepad ++ nunca reciben suficiente amor.
armani

15

Respuesta actualizada:

Presiona Ctrl+ Hpara abrir el cuadro de diálogo Reemplazar.

En el modo de búsqueda, marque Expresión regular.

Find what: PS

Replace with: 1

Y golpear Replace all


Respuesta original

Presiona Ctrl+ Hpara abrir el cuadro de diálogo Reemplazar.

En el modo de búsqueda, marca Regular Expression.

Encontrar que: ^.*$

Reemplazar con ($0)1

Y golpear Replace all

Explicación

Está buscando la expresión regular ^.*$, que es esencialmente cada línea. ^marca el comienzo 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, $0siendo la expresión encontrada, y añadiéndole una 1.


2
Buscar = $y reemplazar = 1es suficiente.
Salman A

8

O hazlo como lo hacen los chicos grandes :).

Seleccione la última columna usando Mayús + Alt => tecla derecha (una vez) => tecla abajo (presione hasta la última línea).

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


Iba a decir esto también ... ¿por qué toda la compleja expresión del registro? esto responde a la pregunta perfectamente ... y por qué el voto negativo? porque alguien simplemente no entendió que es una respuesta válida? Oo
Ídem

2
Esto puede no ser práctico para 23,000 líneas (demasiado lento o no (¿problemas de memoria debido a los algoritmos de Shlemiel el pintor ?)). ¿Realmente lo has probado en 23,000 líneas?
Peter Mortensen

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

@Ditto No pretendo ser un usuario promedio, pero esto parece considerablemente menos intuitivo que las expresiones regulares. Por otra parte, xkcd.com/1171
David Z

1
Esta no es una muy buena respuesta, primero necesitaría encontrar la línea más larga, luego necesitaría presionar hacia abajo hasta la última línea, mientras probaba este método me aburrí después de un par de docenas de líneas, no pude sentarme allí por 20k + líneas
Aequitas

1

Si se trata de cadenas igualmente largas, puede mantener presionado Alty hacer clic y arrastrar para bloquear la selección y poder escribir en varias líneas al mismo tiempo. Si no son igualmente largos, pero no están separados por espacios, no puede hacer el mismo procedimiento y luego reemplazar "" con "".


3
A veces uso esta función, pero arrastrando 23,000 líneas ... No es muy divertido :)
Denham Coote

1

Modo extendido

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

Para algo como esto - donde lo único que tienen que ver con son \r, \n, \tu otras personas incluidas en esta pequeña lista (aunque que se ve página para ser "anticuado", por lo que no es 100% seguro de su veracidad) no hay razón para ir a toda cabo regularmente expresión.

Uso el modo extendido de Notepad ++ "a menudo" para dar masajes a los diseños de archivos, principalmente centrados en eliminar múltiples líneas vacías, espacios en blanco adicionales y otras rarezas variadas.

Extendido

  1. Menú "Buscar"> "Reemplazar" (o Ctrl+ H)
  2. Determine qué terminaciones de línea desea
  3. En "Buscar qué" poner:
    • \r\n para ventanas
    • \r para versiones anteriores de MacOS (9 o anterior)
    • \n para Unix o más reciente de MacOS (OS X o más reciente)
  4. Establezca "Reemplazar con" en
    • 1\r\n para ventanas
    • 1\r para versiones anteriores de MacOS (9 o anterior)
    • 1\n para Unix o más reciente de MacOS (OS X o más reciente)
  5. Habilitar "Extendido"
  6. Haga clic en "Reemplazar todo"

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

¿No debería ser \npara Unix y \rpara la versión anterior de MacOS? Primera viñeta de Wikipedia: en.wikipedia.org/wiki/Newline#Representations
nhahtdh
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.