- Registriert
- 15.08.11
- Beiträge
- 3
Moin moin!
folgendes:
Habe aus Safari's History.plist folgenden Abschnitt:
In der kompletten Datei sind natürlich noch mehr solche Abschnitte, die alle den selben Aufbau haben.
Ich möchte jetzt per Script komplette Abschnitte löschen, in denen bestimmte Keywords vorkommen. Hier als Beispiel macuser.de
Nach einiger Suche bin ich auf den Befehl sed gekommen und habe nun vor, alles, was zwischen
und dem darauffolgenden </dict> kommt, zu löschen.
Zuerst habe ich also die History.plist woanders hinkopiert, und mit
so umgewandelt, dass ich sie mit vi lesen kann.
Anschließend soll mit folgendem Befehl der entsprechende Bereich gelöscht werden, was allerdings nicht funktioniert:
Ich bekomme keine Fehlermeldung, der Inhalt der alten Datei wird in HistoryNeu.plist ausgegeben, aber der entsprechende Bereich ist immernoch vorhanden.
Liegt das daran, dass mein Suchstring über mehrere Zeilen verteilt ist? Muss ich außer den / sonst noch was escapen? Funktioniert der * als Platzhalter nicht? Oder gibt's viel einfachere oder schlankere Lösungen?
Sinn und Unsinn der Aktion lassen wir mal außen vor, dient auch zum Großteil zu Übungszwecken
Vielleicht hat ja jemand eine Idee.
Schöne Grüße!
Max
folgendes:
Habe aus Safari's History.plist folgenden Abschnitt:
Code:
<dict>
<key></key>
<string>http://www.macuser.de/forum/f30/safari-alle-cache-544226/</string>
<key>D</key>
<array>
<integer>1</integer>
</array>
<key>lastVisitedDate</key>
<string>335083562.5</string>
<key>title</key>
<string>Safari: Alle Cache Dateien via Script löschen</string>
<key>visitCount</key>
<integer>1</integer>
</dict>
In der kompletten Datei sind natürlich noch mehr solche Abschnitte, die alle den selben Aufbau haben.
Ich möchte jetzt per Script komplette Abschnitte löschen, in denen bestimmte Keywords vorkommen. Hier als Beispiel macuser.de
Nach einiger Suche bin ich auf den Befehl sed gekommen und habe nun vor, alles, was zwischen
Code:
<dict> <key></key>
<string>http://www.macuser.de/
Zuerst habe ich also die History.plist woanders hinkopiert, und mit
Code:
plutil -convert xml1
Anschließend soll mit folgendem Befehl der entsprechende Bereich gelöscht werden, was allerdings nicht funktioniert:
Code:
sed 's!<dict><key><\/key><string>http:\/\/www.macuser.de\/*<\/dict>!!g' History.plist >HistoryNeu.plist
Liegt das daran, dass mein Suchstring über mehrere Zeilen verteilt ist? Muss ich außer den / sonst noch was escapen? Funktioniert der * als Platzhalter nicht? Oder gibt's viel einfachere oder schlankere Lösungen?
Sinn und Unsinn der Aktion lassen wir mal außen vor, dient auch zum Großteil zu Übungszwecken

Vielleicht hat ja jemand eine Idee.
Schöne Grüße!
Max