Error relacionado con el nombre de clave compleja plist

0

Estoy tratando de determinar cómo resolver un error relacionado con un nombre de clave complejo en un archivo de lista de propiedades. El contenido del archivo plist es el siguiente:

<?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>

El archivo se creó usando plutil y el par clave / valor como se muestra arriba fue aceptado / creado sin ningún problema. Sin embargo, si intento eliminar la clave / valor ( plutil -remove "[email protected]" example.plist ), recibo el siguiente error:

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

La razón por la que creo que esto tiene que ver con el nombre de la clave compleja es que puedo cambiar manualmente el nombre de la clave a "Prueba", momento en el que el comando de eliminación funciona como se esperaba.

Intenté incluir el nombre de la clave entre comillas y no, así como escapar del punto y en el signo (@), pero se observó el mismo error en todos los enfoques.

    
pregunta Ryan D.W. 26.02.2018 - 16:29

1 respuesta

0

La solución implica caracteres de escape, pero resulta que la utilidad plist no responde bien al "exceso de escape". Si me escapo solo de los puntos en el nombre de la clave y nada más, funciona bien. Específicamente, el siguiente comando resultó en una eliminación exitosa de la clave:

plutil -remove "19781A58-AAF7-4D5A-AZB2-8D82F2A3ZA97@example\.com" example.plist
    
respondido por el Ryan D.W. 12.03.2018 - 12:02

Lea otras preguntas en las etiquetas