Löschen eines Plist-Dictionary-Elements nach Titelschlüssel aus Shell-Skript
Ich versuche, ein Shell-Skript zu erstellen, das einen Ordner der obersten Ebene aus Safari-Lesezeichen löscht, indem die Safaris.plist-Datei von Safari nach Ordnernamen verwendet wird. Leider ist die einzige Methode, die ich gefunden habe, um das Wörterbuchelement mit PlistBuddy oder Plutil zu löschen, die Indexnummer.
Hier ist die Grundstruktur:
<dict> <key>Children</key> <array> <dict> ... history ... </dict> <dict> ... bookmarks bar ... </dict> <dict> ... bookmarks menu ... </dict> <dict> ... reading list ... </dict> <dict> ... folder 1 ... </dict> <!-- Delete this item --> <dict> <key>Sync</key> <dict> <key>Data</key> <data>...</data> <key>ServerID</key> <string></string> </dict> <!-- By this key/value --> <key>Title</key> <string>Delete This Folder</string> <key>WebBookmarkType</key> <string>WebBookmarkTypeList</string> <key>WebBookmarkUUID</key> <string>21D71C04-F58B-43ED-B02C-7D9A208CCEC0</string> </dict> <dict> ... folder 3 ... </dict> </array> <dict>...</dict> <key>Title</key> <string></string> <key>WebBookmarkFileVersion</key> <integer>1</integer> <key>WebBookmarkType</key> <string>WebBookmarkTypeList</string> <key>WebBookmarkUUID</key> <string>892D35B5-DD40-418F-83D3-7AB77C2D9C03</string> </dict> </plist>
Ich möchte das gesamte Wörterbuchelement im ersten Array mit dem Title
Wert löschen, Delete This Folder
da sich die Elemente und Indexnummern jederzeit ändern können.
Ich kann dieses Element auf verschiedene Weise erfolgreich nach Index löschen, einschließlich:
PlistBuddy:
PlistBuddy -c "delete :Children:5" /Users/myuser/Library/Safari/Bookmarks.plist
plutil:
plutil -remove Children.5 /Users/myuser/Library/Safari/Bookmarks.plist
Aber ich habe nicht die richtige Syntax gefunden - wenn überhaupt möglich -, um mit einem dieser Dienstprogramme nach Titel zu löschen, noch habe ich ein anderes Befehlszeilenprogramm gefunden, das dies tun kann.
Alternativ bin ich nicht an einen zweistufigen Prozess gebunden:
- Fragen Sie die Plist-Datei ab, um den Titel und die Rückkehrindexnummer zu finden.
- Durch Indexnummer wie oben löschen.
Ich bin mir nicht sicher, wo ich damit anfangen soll, und ich bin mir ziemlich sicher PlistBuddy
, plutil
und defaults read
ich habe nicht die Möglichkeit, den Wert für mich zu suchen, zu zählen und zurückzugeben.
Vielen Dank, alle Empfehlungen wären sehr dankbar. Ich habe in den letzten Stunden ohne viel Glück gesucht und gesucht.
0 Antworten auf die Frage
Verwandte Probleme
-
3
Beschleunigung der Bootzeiten von OS X bei einem Jahr alten MBP
-
3
Wie ordnen Sie ein Airport Time Machine-Backup nach der Migration auf einen neuen Mac wieder zu?
-
6
Wie können Sie den Startton auf einem Mac stummschalten?
-
5
Warum wird mein Macbook bei der Verwendung von Boot Camp extrem heiß?
-
7
Gibt es unter Mac OS X ein Strg + Tab-Äquivalent?
-
6
Weg, um Time Machine-Daten auf eine neue Festplatte zu migrieren
-
13
Setzen Sie die Windows-Position von Mac OS X nach dem Abnehmen des externen Monitors zurück
-
10
Sicherungssoftware für Mac OS X
-
5
Wie kann ich unter Mac OS X einen .kext deinstallieren und entfernen?
-
4
Wie kann ich die Auswurftaste auf der MacBook-Tastatur erneut "löschen"?