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

如何将提取RTM信息的两行Bash命令合并为单行?

单行实现方法

你可以用以下几种方式把命令合并成单行,避开Bash参数扩展嵌套的限制:

  • 使用awk处理(推荐):
    awk能直接按等号分割行,精准提取目标字段:

    rtm=$(unzip -p any.zip VENDOR/build.prop | awk -F= '/ro.vendor.build.id/ {print $2}')
    

    -F= 指定以等号作为字段分隔符,匹配到包含ro.vendor.build.id的行后,直接打印第二列就是你要的RTM值。

  • 使用sed替换:
    通过sed把目标行的前缀部分清空,只保留对应的值:

    rtm=$(unzip -p any.zip VENDOR/build.prop | sed -n 's/ro.vendor.build.id=//p')
    

    -n 表示只输出处理后的匹配行,s/ro.vendor.build.id=//p 会把行里的键名和等号替换为空,再打印结果。

  • 分号分隔原命令(简单直接):
    如果不想用额外文本处理工具,也可以把原来的两行用分号连在同一行执行:

    rtm=$(unzip -p any.zip VENDOR/build.prop | grep "ro.vendor.build.id"); rtm=${rtm#*=}
    

Bash确实不支持${$(command)#*=}这种嵌套参数扩展,所以要么用文本处理工具在管道里直接提取值,要么用分号把两个赋值命令串联执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:54:55