从plist文件中获取信息

从plist文件中获取信息

我需要我的脚本来从 macOS 获取信息。该信息位于plist.~/Library/Preferences/com.apple.SystemProfiler.plist

二进制内容如下。

bplist00�_NSWindow Frame SystemProfileYCPU Names_344 284 751 520 0 0 1440 877 �]HV2J-en-GB_GB_4MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports) ,6VYg

我只想将此处粗体和斜体的内容放入文本文件中的括号之间。我尝试了在互联网上找到的不同方法,但没有运气。

答案1

文件plist格式是二进制 XML、纯文本 XML 甚至纯文本 JSON 之一。plist问题中发布的文件是二进制 XML 格式。

从二进制文件生成纯文本的一种方法如下。

plutil -convert xml1 com.apple.SystemProfiler.plist

要将文件转换回二进制文件,请使用plutil以下命令。

plutil -convert binary1 com.apple.SystemProfiler.plist

这将有助于为问题生成更好的纯文本格式。


PlistBuddy假设“HV2J-en-GB_GB_4”是正确的键,则可以通过以下方式获取所需的值。请注意,只要遇到空格,单引号就可以封装文本。

/usr/libexec/PlistBuddy -c "print :'CPU Names':HV2J-en-GB_GB_4" com.apple.SystemProfiler.plist

对于 BASH 脚本,可以使用命令替换将该值放入变量中。

model=$(/usr/libexec/PlistBuddy -c "print :'CPU Names':HV2J-en-GB_GB_4" com.apple.SystemProfiler.plist)

之后,该值在变量 中可用$model

相关内容