Gibt es eine Möglichkeit, mit Standard-Windows-Software eine Suche und Ersetzung mit regulären Ausdrücken im Klartext durchzuführen?

Gibt es eine Möglichkeit, mit Standard-Windows-Software eine Suche und Ersetzung mit regulären Ausdrücken im Klartext durchzuführen?

Um es kurz zu machen, ich muss einen Client befähigen, routinemäßig eine Regex-Such- und Ersetzungsfunktion auszuführen, die für viele SVG-Dateien mit einer Größe von bis zu 3 MB wie folgt aussieht:

  • Finden:font-family=".*?"
  • Ersetzen mit:font-family="Liberation Sans, Helvetica, Arial, sans-serif"

In den meisten Code-Editoren ist das ganz einfach: Das Problem ist jedoch, dass die Mitarbeiter, die diesen Prozess durchführen,sehr eingeschränkte Umgebung- Windows 7 mit praktisch keiner nicht-Standard-Software außer Microsoft Office und möglicherweise Adobe Illustrator, aufvirtuelle Desktopsohne Administratorrechte. Dies scheint leider nicht verhandelbar zu sein.

Ich versuche, das Management davon zu überzeugen, eine Ausnahme zu machen und zuzulassen, dass etwas wie Notepad++ zu ihrer Umgebung hinzugefügt wird. Dies ist jedoch nicht so einfach, wie es klingt (soweit ich weiß, bedeutet die Installation von benutzerdefinierter Software auf einem Computer aufgrund der Virtualisierung, dass diese auch auf den Servern installiert werden muss, die von über 1.000 Computern verwendet werden, und sie sträuben sich dagegen).

Angenommen, die Installation benutzerdefinierter Software ist nicht möglich. Gibt es dann eine Möglichkeit, mit den in Windows oder Office enthaltenen Tools eine einfache Suche/Ersetzung mit regulären Ausdrücken durchzuführen?

Ich weiß, dass Word einige Such-/Ersetzungsfunktionen für reguläre Ausdrücke hat, kenne aber keine Möglichkeit, zu verhindern, dass es auch jede Codedatei, mit der es in Kontakt kommt, durcheinander bringt. Es gibt viele andere kleine Tools, die mit Windows mitgeliefert werden: Kann eines davon das? Webbasierte Tools könnten auch funktionieren.

Antwort1

Es gibt tatsächlich viele Möglichkeiten.

Dieses Online-Tool ist großartig -->http://www.regexr.com/

Sie können auch die portable Version von NOTEPAD++ herunterladen und dort alles ausführen.

Viel Glück!

Antwort2

Können sie VBScript ausführen? Wenn ja, dann funktioniert das folgende (schnell zusammengehackte) VBScript:

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

Speichern Sie es unter einem bestimmten Namen (z. B. convert.vbs) und führen Sie es dann mit der folgenden Befehlszeile aus:

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

Wenn Sie das Original mit den Änderungen überschreiben möchten, geben Sie den Dateinamen einfach zweimal ein, zum Beispiel:

cscript convert.vbs diagram.svg diagram.svg

Abhängig von Ihrem Kenntnisstand können Sie dies entweder so ändern, dass es mit einer Gruppe von Dateien funktioniert, oder eine Batchdatei schreiben, die dies so oft aufruft, wie Dateien vorhanden sind.

verwandte Informationen