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"
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)
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.
Con el cursor en la primera línea, haga clic en 'Iniciar grabación'
Escribir End, 1,↓
Haga clic en 'Detener grabación'
Haga clic en 'Ejecutar una macro varias veces ...'
Seleccione 'Ejecutar hasta el final del archivo' y haga clic en Ejecutar
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.
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 "".
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.
:%s/$/1/
. Oh espera, ese es Vim . ;-) (que también está disponible para Windows).:g/$/norm A1
. O el más complejo pero más elegantegg$<C-v>G$A1<esc>
. O incluso el ciertamente desagradableggqqqqqA1<esc>j@qq@q
. Más de una forma de hacerlo: PRespuestas:
¿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"
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
\n
lugar de\r\n
para EOL de Unix / OS X ("Buscar qué" es\n
, "Reemplazar con" es1\n
)Usar en
\r
lugar de\r\n
para Mac OS (hasta la versión 9) EOL ("Buscar qué" es\r
, "Reemplazar con" es1\r
)Otras lecturas
fuente
\n
o en su\r
lugar (Unix y Mac EOL respectivamente).\n
=>1\n
o\r
=>1\r
. Hago esto un poco más a menudo con Extended en lugar de Regex personalmente.\r
solo se aplica al Mac OS desaparecido. No OS X, que utiliza\n
.Otra opción es la función de grabación y reproducción.
Capturas de pantalla
Escribir End, 1,↓
fuente
Respuesta actualizada:
Presiona Ctrl+ Hpara abrir el cuadro de diálogo Reemplazar.
En el modo de búsqueda, marque Expresión regular.
Find what:
PSReplace with:
1Y 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
,$0
siendo la expresión encontrada, y añadiéndole una1
.fuente
$
y reemplazar =1
es suficiente.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.
fuente
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 "".
fuente
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
,\t
u 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.
\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)1\r\n
para ventanas1\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)fuente
\n
para Unix y\r
para la versión anterior de MacOS? Primera viñeta de Wikipedia: en.wikipedia.org/wiki/Newline#Representations