2012-04-13 8 views
1

Ich möchte das Passwort aus einigen vertraulichen Dateien entfernen oder maskieren. Ich benutze folgende Syntax und es funktioniert mit einfachen Passwort wie Alphabete und Zahlen Basis-Passwort, aber nicht mit Sonderzeichen Passwort wie! @ # $% ^. Kann jemand Sonderzeichen in Regex zuordnen? Hier, was ich für ein einfaches Passwort benutze.Regex zum Maskieren von Sonderzeichen Passwort in Dateien

sed -i 's/password="[0-9A-Za-z]\+"/password="XXXXXXXX"/g' server.xml 
+0

Wie sind die Zitat Zeichen in der Datei entkommen? Ist es mit Backslash (zB. Password =" My \ "pass" ') oder mit doppelten Anführungszeichen (zB. password =" My "" pass "'), oder etwas anderes? – ANisus

+0

Autsch, Klartext Passwörter! – Flexo

+1

@awoodland: Nicht unbedingt (aber am wahrscheinlichsten: P). Kann ich * ein Passwort Hash darin gespeichert sein? Lass uns hoffen! – ANisus

Antwort

3

verwenden regexp statt. Sind sie erlaubt, "in das Passwort? Dann brauchen Sie möglicherweise einige weitere Änderungen.

sed -i 's/password="[^"]+"/password="XXXXXXXX"/g' server.xml 
+0

Holly Mist !!! euch super !!! – Satish

+2

Hehe, ich nehme an, dein Problem wurde gelöst? Da es sich um eine XML-Datei handelt, gehe ich davon aus, dass "-Zeichen mit " maskiert sind und in diesem Fall die obige Regexp funktionieren wird. Aber denken Sie daran, dass es oft bessere Möglichkeiten gibt, mit XML-Dateien zu arbeiten als regexp. – ANisus