2つの.envファイルの比較

2つの.envファイルの比較

x.envとy.envという2つの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つずつ比較する方が良いかもしれません。

答え1

bashインラインコマンドリダイレクトを許可する他のシェルまたは実行中の場合、

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

または、質問に示されている変数を取得するには、次のことを試すことができますが、ソート順にLC_*影響を与える可能性があるロケール変数の違いに注意してください。したがって、comm入力が整列していないという苦情が発生する可能性があります。

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

関連情報