10

У меня есть файл 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";
};
}

Как изменить указанную выше команду для передачи ей ключа "Страна" (например, в США) и получения значения для ключа "Капитал"

1 ответ1

12

значения по умолчанию не могут сделать это без большого беспорядка, но PlistBuddy будет:

/usr/libexec/PlistBuddy -c "print :Countries:USA:Capital" /Users/sameerp/Downloads/data.plist

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .