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

그런데 이것을 동적으로 처리할 수 있는 방법이 있을까요?

관련 정보