现有的plist编辑工具都是GUI的,有些情况下,反而还没有命令行工具好使。。。So。。。
plistrw是一个运行于Mac系统下的命令行程序。整个项目开源,源代码位于:
GitHub库
请自行下载后用xcode 8/9编译运行。
基本用法:plistrw <PList_file> <Key1[n1]/Key2[n2]...> [NewValue] [-] 第一个参数是需要操作的PLIST文件 第二个参数是用于定位需要操作的对象的KeyPath字符串。在PLIST中的不同层级的key名称,使用“/”来分隔 第三个参数是需要给目标设置的新的值。 第四个参数是需要执行删除操作的标志。若此参数存在,则删除由第二个参数KeyPath所指定的对象 读取范例:plistrw a.plist objkey1/objkey2/obj_array[3]/key3 读取到的结果会直接打印出来 写值范例:在“字典”对象下,覆盖/新增 一个值: plistrw a.plist objkey1/objkey2 another_new_value
在“数组”对象下,覆盖一个已有的值: plistrw a.plist uplevel_key_n/obj_arrayname[item_index] another_new_value
在“数组”对象下,新增一个值(仅当"obj_arrayname"是数组对象时有效): plistrw a.plist uplevel_key_n/obj_arrayname[] another_new_value
创建一个“数组”对象,并将其赋值: 注意,这里是使用一个JSON字符串来创建数组对象的: plistrw a.plist uplevel_key_n/obj_arrayname "[123,145,167]"
设置某个对象的值为 BOOL 类型的值: plistrw a.plist uplevel_key_n/obj_name BOOL_TRUE (或BOOL_FALSE)
设置某个对象的值为二进制字节值: plistrw a.plist uplevel_key_n/obj_name "<7C8D9EF1A3>" ("<>"尖括号是必须要有的,并且内容字符串长度必须为2n)
删除一个对象: 通过把减号 "-" 作为KeyPath之后的唯一一个参数 , 则可以删除KeyPath指定的那个对象(也可以删除数组中的某个对象): plistrw a.plist uplevel_key_n/obj_itemname -
plistrw a.plist uplevel_key_n/obj_arrayname[item_index_n] -
改变某个对象的类型,需要通过使用 JSON 字符串来设置。 plistrw a.plist full_keypath_to_object "[123,145]"
上述语句是将给定对象设置为数组。之后可以用数组的操作方式来读写了(使用[n]) plistrw a.plist full_keypath_to_object "{\"key1\":\"obj1\"}"
上述语句是将给定对象设置为字典。
技巧:可以使用JSON字符串,来一次性地设置和创建一个复杂对象,但是要注意引号、空格、斜杠等特殊字符的转义: plistrw a.plist uplevel_key_n/obj_name "{\"key1\":\"obj1",\"key2\":{\"subkey1\":\"subobj1\"},\"array_obj1\":[1234,1456,1678]}"
使用 "--plist_template" 作为唯一参数,可以得到一个标准的空PLIST文档模板内容。在终端中使用重定向符(>),可以直接将其保存问plist文件 强烈建议使用单引号('),或双引号(")把每个参数都包裹起来,以便于程序可以正确识别参数和得到正确结果。
附件是一个已经编译好的,可以直接使用。
|