比较两个 .env 文件

比较两个 .env 文件

我有两个 env 文件,假设 x.env 和 y.env,变量的顺序不同,但内容可能相同但可能不同。

有什么工具可以用来区分变量吗?

   env -i (
    # clear all envs
     source x.env;
     env | sort >  x.sh
    )

   env -i (
    # clear all envs
     source y.env;
     env | sort >  y.sh
    )

    diff x.sh y.sh

这就是最好的方法吗?如果缺少多个变量,它可能会使比较变得嘈杂并且不是很有用,而一一比较变量名称可能会更好。

答案1

如果您正在运行bash或另一个允许内联命令重定向的 shell,

comm -3 <(sort x.env) <(sort y.env)

或者,要获取问题中所示的变量,您可以尝试此操作,但要注意LC_*可能影响排序顺序的区域设置变量的差异 - 进而导致comm抱怨输入未排序:

comm -3 <(. x.env; env | sort) <(. y.env; env | sort)

相关内容