¿Hay alguna forma de buscar y reemplazar una expresión regular de texto sin formato con el software estándar de Windows?

¿Hay alguna forma de buscar y reemplazar una expresión regular de texto sin formato con el software estándar de Windows?

Larga historia corta, necesito permitir que un cliente ejecute de forma rutinaria una búsqueda y reemplazo de expresiones regulares que se ve así en muchos archivos SVG que tienen un tamaño de hasta 3 MB:

  • Encontrar:font-family=".*?"
  • Reemplazar con:font-family="Liberation Sans, Helvetica, Arial, sans-serif"

Fácil en la mayoría de los editores de código: pero el problema es que los empleados que realizarán este proceso estarán en unentorno muy restringido- Windows 7 prácticamente sin software no estándar, excepto Microsoft Office y posiblemente Adobe Illustrator, enescritorios virtualessin derechos de administrador. Desafortunadamente, esto parece no ser negociable.

Estoy tratando de defender a la gerencia para que haga una excepción y permita que se agregue algo como Notepad++ a su entorno, pero esto no es tan simple como parece (según tengo entendido, porque está virtualizado, instalando software personalizado para una máquina significa instalarlo en los servidores que utilizan más de 1000 máquinas, lo cual son muy resistentes a hacer).

Entonces, suponiendo que no sea posible instalar software personalizado, ¿hay alguna forma de buscar/reemplazar una expresión regular simple utilizando las herramientas que vienen con Windows u Office?

Soy consciente de que Word tiene algunas capacidades de búsqueda/reemplazo de expresiones regulares, pero no conozco ninguna forma de evitar que también arruine cualquier archivo de código que toque. Hay muchas otras pequeñas herramientas incluidas con Windows: ¿alguna de ellas puede hacer esto? Las herramientas basadas en web también podrían funcionar.

Respuesta1

En realidad hay muchas opciones...

Esta herramienta en línea es genial -->http://www.regexr.com/

Además, puede descargar la versión portátil de NOTEPAD++ y ejecutar cualquier cosa allí.

¡Buena suerte!

Respuesta2

¿Pueden ejecutar VBScript? Si es así, entonces funcionará el siguiente VBScript (rápidamente pirateado):

Option Explicit
If WScript.Arguments.Count <> 2 Then
    WScript.Echo "Usage: " & WScript.ScriptName & " <input> <output>"
    WScript.Quit
End If
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(WScript.Arguments.Item(0)) = False Then
    WScript.Echo "Error: `" & WScript.Arguments.Item(0) & "` does not exist."
    WScript.Quit
End If
Dim oFile : Set oFile = fso.OpenTextFile(WScript.Arguments.Item(0))
Dim sContents : sContents = oFile.ReadAll : oFile.Close
Dim re : Set re = New Regexp
re.IgnoreCase = True : re.Global = True : re.Pattern = "font-family=\"".*?\"""
sContents = re.Replace(sContents, "font-family=""Liberation Sans, Helvetica, Arial, sans-serif""")
Set oFile = fso.CreateTextFile(WScript.Arguments.Item(1), True)
oFile.Write sContents
oFile.Close
Set re = Nothing
Set oFile = Nothing
Set fso = Nothing

Guárdelo como algo (por ejemplo convert.vbs) y luego ejecútelo con la siguiente línea de comando:

cscript convert.vbs <input file> <output file>

Si desea sobrescribir el original con las modificaciones, simplemente ingrese el nombre del archivo dos veces, por ejemplo:

cscript convert.vbs diagram.svg diagram.svg

Dependiendo de su nivel de comodidad, puede modificar esto para que funcione en un grupo de archivos o escribir un archivo por lotes que lo llame tantas veces como archivos haya.

información relacionada