ฉันมีไฟล์ 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";
};
}
ฉันจะแก้ไขคำสั่งด้านบนเพื่อส่งผ่านรหัส "ประเทศ" (เช่น USA) และดึงค่าสำหรับคีย์ "เมืองหลวง" ได้อย่างไร
ดังนั้นคำถามของคุณคืออะไร จนถึงตอนนี้คุณมีอะไร คุณไม่ได้ขอให้เราเขียนสคริปต์ให้คุณใช่มั้ย
—
terdon
@terdon: ฉันไม่ได้ขอให้ทุกคนเขียนสคริปต์ให้ฉัน ฉันต้องการทราบว่ามีวิธีโดยตรงในการเข้าถึงค่าของคีย์ในพจนานุกรมที่ซ้อนกันโดยใช้คำสั่ง "ค่าเริ่มต้นอ่าน"
—
smokinguns