首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字典中读取所有的键,在plist中使用plistbuddy。

从字典中读取所有的键,在plist中使用plistbuddy。
EN

Stack Overflow用户
提问于 2015-01-16 14:05:57
回答 2查看 3.6K关注 0票数 4

我想读取字典中的所有键,在plist中使用plistbuddy,并将值推入数组中。我知道下面的实用工具有助于阅读plist。/usr/libexec/PlistBuddy

到目前为止,我还在努力编写密钥以获得价值。theKey = "selva“

因此,我编写了下面的代码,以获得上述键的值。

代码语言:javascript
复制
val=$(function_stringFields "${theFile}" "${theKey}" "${index}")

(function_stringFields是一种自定义方法。)

是否也有同样的目标。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-16 15:35:14

要做到这一点,关键是打印选项为plistbuddy。没有参数,它会打印出所有的行。

下面是一个小脚本,它将加载键数组和值数组。

这方面的成功将真正取决于你可能已经建立了什么样的树在褶皱。如果是平的,你会更快乐。此示例也不考虑值中的空格(它们将被删除)。

代码语言:javascript
复制
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

票数 2
EN

Stack Overflow用户

发布于 2015-01-16 14:24:13

代码语言:javascript
复制
plist_file=/Applications/iTunes.app/Contents/Info.plist
keys=(`/usr/libexec/PlistBuddy -c Print "$plist_file" | perl -lne 'print $1 if /^    (\S*) =/'`)

这将创建一个包含所有顶级键的数组keys。它所做的就是寻找以四个空格开始的输出,然后是一个键,然后是"=“。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27985719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档