Notepad ++, reemplace "x" con un valor de una lista


1

Básicamente lo que dice el título, déjame hacer un ejemplo.

this=X
that=XXX
those=XX

Quiero reemplazar X al azar con un valor de una lista, por ejemplo, (1, 2 o 3), para que se convierta en:

this=2
that=312
those=32

Tenga en cuenta que preferiría que no haya repeticiones en las cadenas, aunque puedo repararlo más tarde, si es necesario.

Respuestas:


0

Quiero reemplazar X al azar con un valor de una lista

Esto no es posible utilizando la funcionalidad incorporada de Notepad ++.

Podrías escribir un guión para hacerlo.

Hay un complemento de script de Python para Notepad ++:

Python Script para Notepad ++

  • Acceso programático completo a las funciones y menús de Notepad ++
  • Acceso programático completo a todas las funciones de Scintilla
  • Llamar a otros elementos del menú de complementos
  • Asigne elementos de menú, accesos directos e iconos de barra de herramientas a los scripts
  • Procese los eventos de Notepad ++ y Scintilla, directamente desde un script de Python
  • Consola Python incorporada
  • Soporte completo de expresiones regulares para búsqueda y reemplazo: la expresión regular de Python de script reemplaza
  • Inicie programas externos y canalice la salida directamente a un documento de Notepad ++, o filtre, o simplemente a la ventana de la consola
  • Documentación completa para todos los objetos y métodos.

Fuente Python Script para Notepad ++


0

Como escribió DavidPostill, esto no es posible a través de Notepad ++.

Sin embargo, si la lista de reemplazos y la lista de archivos para reemplazar es corta, usaría el siguiente enfoque manual:

  • En primer lugar, reemplazar XXX, porque XXXno es parte de Xo XX(al revés, Xes una parte de XXX, y si se reemplaza Xen primer lugar, por ejemplo, con foo, entonces usted va a terminar con foo, foofoo, foofoofoo.)
  • luego reemplazar XX
  • al final, reemplace X

    prueba1 = X prueba2 = XX prueba3 = XXX

ctrl-a, ctrl-h

búsqueda: XXX reemplazar: foo

test1=X
test2=XX
test3=foo

ctrl-h

búsqueda: XX reemplazar: barra

test1=X
test2=bar
test3=foo

y así.

Ejemplo de contador:

test1=X
test2=XX
test3=XXX

ctrl-a, ctrl-h

búsqueda: X reemplazar: foo

test1=foo
test2=foofoo
test3=foofoofoo

Alternativas

Cygwin

La primera alternativa que me viene a la mente es Cygwinporque está instalada en mi PC de todos modos.

Encienda Cygwin y úselo perl, sedo awkpara reemplazarlo.

Potencia Shell

Como se indicó aquí , podría usar algún script de PowerShell en la línea de

(Get-Content test.txt) | ForEach-Object { $_ -replace "foo", "bar" } | Set-Content test2.txt

Lote

Como se indica aquí , también puede usar secuencias de comandos por lotes, por ejemplo

@echo off &setlocal
setlocal enabledelayedexpansion

set "search=%1"
set "replace=%2"
set "textfile=Input.txt"
set "newfile=Output.txt"
(for /f "delims=" %%i in (%textfile%) do (
    set "line=%%i"
    set "line=!line:%search%=%replace%!"
    echo(!line!
))>"%newfile%"
del %textfile%
rename %newfile%  %textfile%
endlocal
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.