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

如何从两种格式的配置文件提取DATA_DB的变量值

提取配置文件中DATA_DB的多行/单行值

场景说明

现有两种格式的配置文件:

格式1(多行续行)

DATA_DB=foo \
        bar \
        zoo
#may be a comment or not(unreliable content)

格式2(单行)

DATA_DB=foo1

直接执行source foo.cfg会因为值未加引号报错;用普通while循环只能提取部分内容,需要一段通用代码同时适配两种格式,提取格式1的foo、bar、zoo和格式2的foo1。

通用提取脚本

用awk可以轻松处理两种格式,直接运行以下命令:

awk '
    # 匹配DATA_DB开头的行,去掉前缀后保存内容
    /^DATA_DB=/ { sub(/^DATA_DB=/, ""); content = $0; next }
    # 处理续行,去掉反斜杠后追加到内容
    /\\$/ { sub(/\\$/, ""); content = content " " $0; next }
    # 非续行直接追加
    { content = content " " $0 }
    # 最后拆分内容输出非空项,同时过滤注释行
    END {
        split(content, items, /[[:space:]]+/)
        for (i in items) {
            if (items[i] != "" && items[i] !~ /^#/) print items[i]
        }
    }
' foo.cfg

代码说明

  1. 先捕获DATA_DB=开头的行,去掉前缀后把值存入content变量
  2. 遇到行尾带反斜杠的续行,去掉反斜杠后把行内容追加到content
  3. 普通行直接追加到content
  4. 最后把content按空格拆分数组,过滤掉空字符串和注释内容,输出每个有效项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:05:17