У меня есть файл plist, и я заинтересован в получении значений из вложенных словарей с помощью сценария оболочки. Вот структура моего файла plist:
<dict>
<key>Countries</key>
<dict>
<key>USA</key>
<dict>
<key>Capital</key>
<string>Washington DC</string>
<key>Continent</key>
<string>North America</string>
</dict>
<key>Italy</key>
<dict>
<key>Capital</key>
<string>Rome</string>
<key>Continent</key>
<string>Europe</string>
</dict>
</dict>
</dict>
Я заинтересован в получении значения, назначенного клавише "Столица", если пользователь вводит название страны.
Например, если я выполню следующую команду, я получу полные данные в словаре «Страны».
defaults read "/Users/sameerp/Downloads/data" Countries 2>&1
Я получаю следующий вывод:
{
Italy = {
Capital = Rome;
Continent = Europe;
};
USA = {
Capital = "Washington DC";
Continent = "North America";
};
}
Как изменить указанную выше команду, передав ей ключ «Страна» (например, в США) и получить значение ключа «Капитал»
macos
shell-script
dictionary
plist
smokinguns
источник
источник
Ответы:
значения по умолчанию не могут сделать это без большого беспорядка, но PlistBuddy будет:
источник