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

如何使用Bash从JSON数据中提取邮箱字段值?

在Bash中提取JSON里的邮箱字段内容

如果你要在Bash里提取JSON中的邮箱字段,最靠谱的工具绝对是jq——专门为处理JSON设计的命令行工具,几乎能应对所有JSON格式的情况。

方法一:使用jq(推荐)

假设你的JSON文件(比如data.json)内容长这样:

{
  "user": "Alice",
  "email": "alice@domain.com",
  "role": "admin"
}

直接用以下命令就能提取出邮箱:

jq -r '.email' data.json
  • -r 参数是让jq输出原始字符串(不带引号),如果不加这个参数,输出会带双引号。
  • 如果你的JSON数据是通过管道传递过来的(比如从其他命令输出),可以这样用:
    cat data.json | jq -r '.email'
    

方法二:无jq时用awk/sed(仅适用于格式规整的JSON)

如果你的系统上没有jq(比如某些极简环境),可以用文本处理工具临时解决,但要注意:这种方法只适合JSON格式非常规整的情况(比如邮箱字段单独一行,格式是"email": "xxx@xxx.com")。

用awk的例子:

awk -F'"' '/"email":/ {print $4}' data.json

这里用双引号作为分隔符,找到包含"email":的行,然后打印第4个字段(刚好是邮箱内容)。

或者用sed:

sed -n 's/.*"email": "\(.*\)".*/\1/p' data.json

这个命令会匹配包含"email": "..."的行,捕获引号里的邮箱内容并输出。

⚠️ 注意:文本工具(awk/sed)不是为解析JSON设计的,如果你的JSON有换行变化、字段顺序调整或者嵌套结构,这些方法很容易失效,所以能装jq的话一定要用jq!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:12:57