Existe alguma maneira de localizar e substituir um regex de texto simples pelo software padrão do Windows?

Existe alguma maneira de localizar e substituir um regex de texto simples pelo software padrão do Windows?

Longa história curta, preciso permitir que um cliente execute rotineiramente uma localização e substituição de regex semelhante a esta em muitos arquivos SVG com até 3 MB de tamanho:

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

Fácil na maioria dos editores de código: mas o problema é que os funcionários que farão esse processo estarão em uma situação difícil.ambiente muito restrito- Windows 7 essencialmente sem software fora do padrão, exceto Microsoft Office e possivelmente Adobe Illustrator, emdesktops virtuaissem direitos de administrador. Isso parece não ser negociável, infelizmente.

Estou tentando defender que o gerenciamento abra uma exceção e permita que algo como o Notepad ++ seja adicionado ao seu ambiente - mas isso não é tão simples quanto parece (pelo que entendi, porque é virtualizado, instalando software personalizado para uma máquina significa instalá-la nos servidores usados ​​por mais de 1.000 máquinas, o que eles são muito resistentes a fazer).

Portanto, supondo que a instalação de software personalizado não seja possível, existe alguma maneira de localizar/substituir uma simples expressão regular usando ferramentas que acompanham o Windows ou o Office?

Estou ciente de que o Word tem alguns recursos de localização/substituição de regex, mas não tenho conhecimento de nenhuma maneira de impedi-lo de bagunçar qualquer arquivo de código que toca. Existem muitas outras pequenas ferramentas incluídas no Windows: alguma delas pode fazer isso? Ferramentas baseadas na Web também poderiam funcionar.

Responder1

Na verdade, existem muitas opções..

Esta ferramenta online é ótima ->http://www.regexr.com/

Além disso, você pode baixar a versão portátil do NOTEPAD ++ e executar qualquer coisa lá.

Boa sorte!

Responder2

Eles podem executar VBScript? Nesse caso, o seguinte VBScript (rapidamente hackeado em conjunto) funcionará:

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

Salve-o como algo (por exemplo convert.vbs) e execute-o com a seguinte linha de comando:

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

Se quiser sobrescrever o original com as modificações, basta colocar o nome do arquivo duas vezes, por exemplo:

cscript convert.vbs diagram.svg diagram.svg

Dependendo do seu nível de conforto, você pode modificar isso para funcionar em um grupo de arquivos ou escrever um arquivo em lote que chame isso quantas vezes houver arquivos.

informação relacionada