使用 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

但有没有办法动态地做到这一点呢?

相关内容