我需要我的脚本来从 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
。