我想读取字典中的所有键,在plist中使用plistbuddy,并将值推入数组中。我知道下面的实用工具有助于阅读plist。/usr/libexec/PlistBuddy
到目前为止,我还在努力编写密钥以获得价值。theKey = "selva“
因此,我编写了下面的代码,以获得上述键的值。
val=$(function_stringFields "${theFile}" "${theKey}" "${index}")(function_stringFields是一种自定义方法。)
是否也有同样的目标。
发布于 2015-01-16 15:35:14
要做到这一点,关键是打印选项为plistbuddy。没有参数,它会打印出所有的行。
下面是一个小脚本,它将加载键数组和值数组。
这方面的成功将真正取决于你可能已经建立了什么样的树在褶皱。如果是平的,你会更快乐。此示例也不考虑值中的空格(它们将被删除)。
LINES=`/usr/libexec/PlistBuddy FrameworkList.plist -c print | grep = | tr -d ' '`
COUNTER=0
for PLIST_ITEMS in $LINES;
do
KEY[${COUNTER}]=`echo $PLIST_ITEMS | cut -d= -f1`
VALUE[${COUNTER}]=`echo $PLIST_ITEMS | cut -d= -f2`
COUNTER=${COUNTER}+1
done
发布于 2015-01-16 14:24:13
plist_file=/Applications/iTunes.app/Contents/Info.plist
keys=(`/usr/libexec/PlistBuddy -c Print "$plist_file" | perl -lne 'print $1 if /^ (\S*) =/'`)这将创建一个包含所有顶级键的数组keys。它所做的就是寻找以四个空格开始的输出,然后是一个键,然后是"=“。
https://stackoverflow.com/questions/27985719
复制相似问题