0 votos

¿Cómo puedo eliminar una clave en un plist si tengo el valor de la clave?

Tengo un plist así:

<?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>Delete Me</key>
    <string>1</string>
    <key>Keep Me</key>
    <string>1</string>
</dict>
</plist>

¿Cómo puedo eliminar el par de claves "Delete Me"?

0voto

benwiggy Puntos 8
defaults delete /path/to/file Delete\ Me

Por cierto, yo evitaría tener espacios en los nombres clave. Podrías probar con comillas simples en lugar de escaparlas.

Además: no necesita la extensión de archivo .plist en la ruta de archivo.

También puede abrirlo en BBEdit o Xcode (ambos manejarán la conversión a y desde plists binarios sobre la marcha) y eliminar la parte correspondiente ( key y string ) directamente. Otros editores de texto también pueden hacer lo mismo.

0 votos

No puedo verificar el resultado después de ejecutar ese comando porque cambió el formato del plist a bplist. ¿Conoces alguna forma de mantenerlo como texto XML?

0 votos

Puede comprobarlo con defaults read . Debería devolver que la clave no se encuentra. O bien, ver mis adiciones a la respuesta. ¿Para qué aplicación/proceso es este plist? ¿Puede el proceso leerlo como binario? Hay el plutil para convertir el formato.

0 votos

Gracias, sí, sólo tengo plutil para convertirlo de nuevo en texto. do shell script "plutil -convert xml1 '<posixPath>'"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X