问题描述
我正在尝试访问MAC OS上plist
文件中的特定属性,但是该属性的名称中有一个空格,我无法访问它。
这是我尝试的请求,但它返回了我所有的SpacesdisplayConfiguration
:
$defaults read com.apple.spaces SpacesdisplayConfiguration Space\ Properties
我认为这只是语法错误,但是我找不到问题。
解决方法
不可能在比根级别更深的级别上read
特定属性
如果您喜欢做丑陋的事情,您可以做这样的丑陋的事情:
defaults read com.apple.spaces > /tmp/$$.plist
/usr/libexec/PlistBuddy -c 'print :SpacesDisplayConfiguration:Space\ Properties' /tmp/$$.plist
尽管这可能不那么难看:
/usr/libexec/PlistBuddy -c 'print SpacesDisplayConfiguration:Space\ Properties' $HOME/Library/Preferences/com.apple.spaces.plist
以下尝试无效,并且如果有人知道为什么可以对我执行ping操作-我认为这与bash
进程替代不可寻求有关。
defaults read com.apple.spaces | /usr/libexec/PlistBuddy -c 'print :SpacesDisplayConfiguration:Space\ Properties' /dev/stdin
defaults read com.apple.spaces | /usr/libexec/PlistBuddy -c 'print :SpacesDisplayConfiguration:Space\ Properties' -
/usr/libexec/PlistBuddy -c "print" <(defaults read com.apple.spaces)
,
我只是使用 cat
和 grep
来解决的。不那么优雅,但简单实用:
cat path/to/file.plist | grep -A 1 <key>
输出示例:
<key>slideScanBlurThreshold</key>
<real>0.0</real>
,
如果您可以下载工具,Scout 可以读取键中带有空格的嵌套值。
scout read -i $HOME/Library/Preferences/com.apple.spaces.plist -f plist \
"SpacesDisplayConfiguration.Space Properties"