Удаление элемента словаря Plist по ключу заголовка из сценария оболочки
Я пытаюсь создать сценарий оболочки, который удалит папку верхнего уровня из закладок Safari с помощью файла Bookmarks.plist Safari по имени папки. К сожалению, я нашел единственный способ удалить элемент словаря с помощью PlistBuddy или plutil по номеру индекса.
Вот основная структура:
<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>
Я хочу удалить весь элемент словаря в первом массиве со Title
значением, Delete This Folder
поскольку элементы и номера индексов могут меняться все время.
Я могу удалить этот элемент по индексу успешно несколькими способами, в том числе:
PlistBuddy:
PlistBuddy -c "delete :Children:5" /Users/myuser/Library/Safari/Bookmarks.plist
plutil:
plutil -remove Children.5 /Users/myuser/Library/Safari/Bookmarks.plist
Но я не нашел правильный синтаксис - если это вообще возможно - удалить по названию с помощью одной из этих утилит, и я не нашел другой утилиты командной строки, которая может это сделать.
В качестве альтернативы, я не привязан к двухэтапному процессу:
- Запросите файл plist, чтобы найти заголовок и номер индекса возврата.
- Удалить по номеру индекса, как указано выше.
Я не уверен, с чего начать, хотя, и я почти уверен PlistBuddy
, plutil
и у defaults read
меня нет возможности искать, считать и возвращать значение для меня.
Спасибо, любые рекомендации будут с благодарностью, я искал и тестировал методы в течение последних нескольких часов без какой-либо удачи.
0 ответов на вопрос
Похожие вопросы
-
3
Ускорение загрузки OS X на годичной MBP
-
3
Как повторно связать резервную копию Airport Time Machine после перехода на новый Mac?
-
6
Как вы отключите звук запуска на Mac?
-
-
5
Почему мой Macbook сильно нагревается при использовании Boot Camp?
-
7
Есть ли в Mac OS X эквивалент Ctrl + Tab?
-
6
Способ переноса данных Time Machine на новый диск
-
13
Сброс положения Mac OS X Windows после отсоединения внешнего монитора
-
10
Программное обеспечение для резервного копирования для Mac OS X
-
5
Как удалить и удалить .kext в Mac OS X?
-
4
Как переназначить клавишу извлечения на клавиатуре MacBook, чтобы «удалить»?