Ich habe eine plist-Datei und möchte mithilfe von Shell-Skripten Werte aus verschachtelten Wörterbüchern abrufen. Hier ist die Struktur meiner plist-Datei:
<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>
Ich möchte den Wert abrufen, der dem "Groß" -Schlüssel zugewiesen ist, wenn der Benutzer einen Ländernamen angibt.
Wenn ich zum Beispiel den folgenden Befehl ausführe, erhalte ich die vollständigen Daten im "Länder" -Wörterbuch.
defaults read "/Users/sameerp/Downloads/data" Countries 2>&1
Ich erhalte folgende Ausgabe:
{
Italy = {
Capital = Rome;
Continent = Europe;
};
USA = {
Capital = "Washington DC";
Continent = "North America";
};
}
Wie ändere ich den obigen Befehl, um ihm den "Country" -Schlüssel (z. B. USA) zu übergeben und den Wert für "Capital" -Schlüssel abzurufen?
macos
shell-script
dictionary
plist
smokinguns
quelle
quelle
Antworten:
Standardeinstellungen können dies nicht ohne viel Chaos tun, aber PlistBuddy wird:
quelle