You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS终端/Shell脚本提取深层大型plist中的指定邮箱

在macOS中提取深层plist文件里的TotoEmailAddress字段值

你的问题出在TotoEmailAddress字段不在plist的根层级,直接用print "TotoEmailAddress"找不到目标字段。以下两种方法可以解决这个问题:

方法1:用plutil+jq(推荐,适配任意层级)

先将plist转为JSON格式,再用jq递归查找目标字段:

# 转换plist为JSON并提取邮箱地址
plutil -convert json -o - com.bob.toto.plist | jq '. | .. | .TotoEmailAddress? // empty'

如果你的macOS没有安装jq,可以通过Homebrew安装:brew install jq

方法2:用PlistBuddy+awk(无需额外工具)

直接打印整个plist结构,再通过awk定位目标字段的对应值:

# 遍历plist并提取TotoEmailAddress的值
/usr/libexec/PlistBuddy -c "Print :" com.bob.toto.plist | awk '/TotoEmailAddress/ {getline; print $0}'

原理说明:

  • 第一种方法通过plutil转换格式后,jq的..语法会递归遍历JSON的所有节点,精准匹配TotoEmailAddress键并输出对应值。
  • 第二种方法利用PlistBuddy打印完整plist结构的特性,通过awk找到字段名所在行,再读取下一行(即字段值)完成提取。

内容的提问来源于stack exchange,提问作者marciton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:32:06