Errore relativo al nome della chiave complessa plist

0

Sto cercando di determinare come risolvere un errore relativo a un nome di chiave complesso in un file di elenco di proprietà. I contenuti del file plist sono i seguenti:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>[email protected]</key>
    <dict>
        <key>due</key>
        <date>2018-02-27T05:00:00Z</date>
        <key>start</key>
        <date>2018-02-26T15:08:52Z</date>
    </dict>
</dict>
</plist>

Il file è stato creato utilizzando plutil e la coppia chiave / valore mostrata sopra è stata accettata / creata senza problemi. Tuttavia, se tento di rimuovere la chiave / il valore ( plutil -remove "[email protected]" example.plist ), ricevo il seguente errore:

example.plist: Could not modify plist, error: No value to remove at key path [email protected]

La ragione per cui credo che questo abbia a che fare con il nome della chiave complessa è che posso modificare manualmente il nome della chiave in "Test", a quel punto il comando di rimozione funziona come previsto.

Ho provato entrambe le virgolette, racchiudendo il nome della chiave e non, oltre a sfuggire al punto e al segno (@), ma lo stesso errore è stato osservato in tutti gli approcci.

    
posta Ryan D.W. 26.02.2018 - 16:29
fonte

1 risposta

0

La soluzione include caratteri di escape, ma risulta che l'utilità plist non risponde bene a "over-escape". Se sfuggo solo i punti nel nome della chiave e nient'altro, funziona perfettamente. In particolare, il seguente comando ha provocato l'eliminazione di una chiave di successo:

plutil -remove "19781A58-AAF7-4D5A-AZB2-8D82F2A3ZA97@example\.com" example.plist
    
risposta data 12.03.2018 - 12:02
fonte

Leggi altre domande sui tag