sed を使用してファイルのプレースホルダを実際の環境変数に置き換えます。

sed を使用してファイルのプレースホルダを実際の環境変数に置き換えます。

次のテンプレートファイルがあります。

export const environment = {
  api: {
    url: '$API_URL',
    key: '$API_KEY',
  }
}

実際のプレースホルダの値を次のように置き換えようとしています。

sed 's/$\([A-Z_]*\)/$(\1)/g' ./input.ts ./output.ts

したがって、プレースホルダを環境変数の実際の値に置き換えたいのですが、上記のスクリプトを実行すると、次の結果が表示されます。

export const environment = {
  api: {
    url: '$(API_URL)',
    key: '$(API_KEY)'
  }
}

したがって、次の変数が与えられます。

export API_URL=someurl
export API_KEY=key

私は出力が次のようになります:

export const environment = {
  api: {
    url: 'someurl',
    key: 'key'
  }
}

変数名を明示的に指定することでこれを達成できます。

sed -e 's|$API_URL|'$API_URL'|g
        s|$API_KEY|'$API_KEY'|g
        ./in.ts > ./out.ts

しかし、これを動的に処理する方法はありますか?

ベストアンサー1

おすすめ記事