Mam plik plist i jestem zainteresowany pobieraniem wartości z zagnieżdżonych słowników za pomocą skryptu powłoki. Oto struktura mojego pliku 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>
Chcę pobrać wartość przypisaną do klucza „Kapitał”, jeśli użytkownik poda nazwę kraju.
Na przykład jeśli wykonam następujące polecenie, otrzymam pełne dane w słowniku „Kraje”.
defaults read "/Users/sameerp/Downloads/data" Countries 2>&1
Otrzymuję następujące dane wyjściowe:
{
Italy = {
Capital = Rome;
Continent = Europe;
};
USA = {
Capital = "Washington DC";
Continent = "North America";
};
}
Jak zmodyfikować powyższe polecenie, aby przekazać mu klucz „Kraj” (np. USA) i pobrać wartość klucza „Kapitał”
macos
shell-script
dictionary
plist
palenie tytoniu
źródło
źródło
Odpowiedzi:
wartości domyślne nie mogą tego zrobić bez większego bałaganu, ale PlistBuddy:
źródło