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

如何用shell高效提取每行任意位置的product和version字段输出两列

awk 实现无固定顺序键值对提取方案

针对你这种每行键值对顺序不固定的场景,以下awk脚本可以快速完成提取,性能远高于shell的while read循环:

awk '{
    # 每行处理前清空存储变量
    product = ""
    version = ""
    # 遍历当前行所有字段
    for (i = 1; i <= NF; i++) {
        # 匹配到键则取下一个字段作为对应值
        if ($i == "product") product = $(i+1)
        if ($i == "version") version = $(i+1)
    }
    # 两个值都存在时按要求输出,若允许缺省可删除if判断
    if (product != "" && version != "") {
        print product, version
    }
}' 待处理的文件路径

如果需要输出的两列对齐更规范,可以将print product, version替换为printf "%s\t%s\n", product, version,用制表符分隔两列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 06:57:01