我有两个 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)