代码之家  ›  专栏  ›  技术社区  ›  Luke Stoward

点环境文件比较/验证

  •  0
  • Luke Stoward  · 技术社区  · 2 年前

    如果你有多个 .env 特定环境下给定目录中的文件,例如。 dev.env , staging.env prod.env ,使用shell,是否可以检查每个文件是否具有相同的env var键,忽略这些值?

    例如,给定以下文件:

    开发环境

    KEY_1=DEV_VALUE_1
    KEY_2=DEV_VALUE_2
    

    舞台表演。环境

    KEY_1=STAGING_VALUE_1
    KEY_2=STAGING_VALUE_2
    

    产品环境

    KEY_1=PROD_VALUE_1
    KEY_2=PROD_VALUE_2
    KEY_3=PROD_VALUE_3
    

    谁能推荐一个 awk 产品环境 包含一把额外的钥匙?这里的目标是验证 埃文先生 文件在它们声明的键中对齐,主要是在CI设置中。

    1 回复  |  直到 2 年前
        1
  •  1
  •   James K. Lowden    2 年前

    当然,计算每个键的文件数,并显示差异。

    #! /usr/bin/awk -f
    
    {
        keys[$1]++
    }
    
    END {
        for( key in keys ) {
            if( n == 0 ) {
                n = keys[key]
            }
    
            if( keys[key] != n ) {
                printf "%s appears in %d of %d files\n", \
                key, keys[key], n > "/dev/stderr"
            }
        }
    }
    
    $ awk -F= -f ./missing.awk *.env
    KEY_3 appears in 1 of 3 files