Suchen und ersetzen mit Wildcards und sed ?

Weltsadist

Neu angemeldet
Registriert
3 Dez. 2015
Beiträge
33
Ort
Im Arsch
Tach zusammen,

Ich habe von meinem beruflichen Vorgänger ein ziemlich umfangreiches Excel Tool geerbt.
Leider sind die Tabellenblätter Passwort geschützt und die xml Dateien zu groß um mit einem Text-Editor geöffnet zu werden.

Meine Idee war das ganze mit sed unter Linux zu lösen, aber ich bekomme einfach keine passende Syntax mit Wildcards hin.

Es müsste folgender Bereich aus den Dateien gelöscht werden:

<sheetProtection algorithmid="SHA-512"
name="SHA-512"
hashValue="**=="
saltValue="**"
spinCount="100000"
sheet="1"
objects="1"
scenarios="1"/>

Wobei ich ** halt nicht kenne.

Kann da spontan einer helfen?
 
sed und multiline ist eher "bäh"
Eine RegEx an sich ist nicht das Problem und könnte ich dir bauen. PS.: Hier ein Beispiel . Solltest du aber besser in der script-sprache deines Vertrauens dann einbauen z.B. Ruby oder Python. Das geht auch ohne sich groß mit einer der Sprachen auseinander zu setzen.
Zu beachten ist, dass du multi-line dann in Ruby/Python ggf. als Flag aktivieren musst statt meinem raw-workaround mit [\s\S].


PPS.: Nochmal bisschen verfeinert den RegEx:
 
Zuletzt bearbeitet:
Tach zusammen,

Ich habe von meinem beruflichen Vorgänger ein ziemlich umfangreiches Excel Tool geerbt.
Leider sind die Tabellenblätter Passwort geschützt und ...

Ähm, wenn du diese Dateien von deinem Vorgänger "geerbt" hast, dann muss er dir auch die Passwörter gegeben haben.
Sonst klingt dass für mich gerade nicht sehr seriös.
 
Stimmt an sich, wobei das in der Realität dann ja manchmal doch nicht der Fall ist...
Jdfs ist diese Sheet-Protection kein echter Schutz, kann trivial entfernt werden bezieht sich auch nur auf das Editieren der Dateien, also nicht auf den lesenden Zugriff, ich gehe davon aus, dass dies ein Schutz gegen versehentliches Verändern ist und nicht als Schutz gegen einen "Eindringling".
MS schreibt dazu: "Worksheet level protection is not intended as a security feature."


Von daher sehe ich hier kein Problem einem seit 5 Jahren registrierten User zu helfen. Im Zweifel geht der sonst hin und findet sowieso einen Editor mit dem er das öffnen kann (z.B. geany) - was übrigens meine Empfehlung wäre wenn es sich um nur so 10 oder weniger Dateien handelt (vorher bakups anlegen sowieso in jedem Fall).
 
  • Thread Starter Thread Starter
  • #5
Ähm, wenn du diese Dateien von deinem Vorgänger "geerbt" hast, dann muss er dir auch die Passwörter gegeben haben.
Sonst klingt dass für mich gerade nicht sehr seriös.

Nicht jedes Arbeitsverhältnis wird in beidseitigem Einvernehmen beendet. Da kann es schon mal zu einem plötzlichem Anflug von Demenz kommen.

Ich habe mir zwischenzeitlich ein VBA Macro gegoogelt, mit dem sich das Problem bei reichlich Geduld lösen lies... Trotzdem Danke für die Hilfe. :)
 
und die xml Dateien zu groß um mit einem Text-Editor geöffnet zu werden.
Mit Vim hab ich schon Textdateien geöffnet, die mehrere GB groß waren.

Ansonsten wäre das mit der Zeile gegangen:
Code:
Expand Collapse Copy
sed -n '1!H;1h;${x;s/<sheetProtection[^>]\+>//g;p}' -i deine_xml_datei.xls

Die sucht nach "<sheetProtection" und löscht ab da alles bis zum nächsten ">".
 
Zuletzt bearbeitet:
Zurück
Oben