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

Shell脚本需求:提取JSON文件中的packageId值并存储到变量

别担心,提取这个JSON里的packageId其实有几种简单易上手的方案,不用纠结复杂的Shell脚本语法,我给你整理两个常用的方法:

方法1:用jq工具(推荐,最稳定可靠)

jq是专门用来处理JSON数据的工具,语法直观,能完美应对各种JSON结构,是处理这类需求的首选。

步骤:

  1. 先检查你的系统有没有安装jq,在终端输入:

    which jq
    

    如果没安装,根据你的系统装一下:

    • Ubuntu/Debian:sudo apt install jq
    • CentOS/RHEL:sudo yum install jq
    • Mac:brew install jq
  2. 提取packageId并存到变量里:
    假设你的JSON内容保存在文件output.json中,执行以下命令:

    package_id=$(jq -r '.[0].properties.packageId' output.json)
    

    要是你的JSON是直接的字符串(不是文件),可以这么写:

    json='[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1},"path":"app-debug.apk","properties":{"packageId":"com.abc.def","split":"","minSdkVersion":"17"}}]'
    package_id=$(echo "$json" | jq -r '.[0].properties.packageId')
    
  3. 验证结果:
    输入echo $package_id,就能看到输出com.abc.def啦,之后你就可以在脚本里用$package_id引用这个变量。

方法2:没有jq?用awk/sed临时处理(仅限结构固定的情况)

如果没法安装jq,可以用文本处理工具临时提取,但要注意:这种方法只适合JSON结构完全固定的场景,如果JSON格式有变化(比如换行、空格调整)可能失效。

用awk的命令:

package_id=$(awk -F'"' '/"packageId"/{print $4}' output.json)

用sed的命令:

package_id=$(sed -n 's/.*"packageId":"\([^"]*\)".*/\1/p' output.json)

同样执行echo $package_id就能看到结果啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:10:28