J'ai un fichier plist et je suis intéressé à récupérer des valeurs à partir de dictionnaires imbriqués à l'aide d'un script shell. Voici la structure de mon fichier 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>
Je souhaite récupérer la valeur affectée à la clé "Capital" si l'utilisateur fournit un nom de pays.
Par exemple, si j'exécute la commande suivante, j'obtiens les données complètes sous le dictionnaire "Pays".
defaults read "/Users/sameerp/Downloads/data" Countries 2>&1
J'obtiens la sortie suivante:
{
Italy = {
Capital = Rome;
Continent = Europe;
};
USA = {
Capital = "Washington DC";
Continent = "North America";
};
}
Comment puis-je modifier la commande ci-dessus pour lui passer la clé "Country" (USA par exemple) et récupérer la valeur de la clé "Capital"
macos
shell-script
dictionary
plist
fumeurs
la source
la source
Réponses:
les valeurs par défaut ne peuvent pas faire cela sans beaucoup de dégâts, mais PlistBuddy va:
la source