我有环境变量的文件。
带有e.variables的文件包含以下内容:
STACK=OVERFLOW
PORT=3000
我的.txt文件包含以下内容:
First variable: STACK
Second variable: PORT
我想使用带有环境变量的文件中的值替换我的.txt文件中的STACK
和PORT
。
结果:
First variable: OVERFLOW
Second variable: 3000
我尝试使用SED,但没有成功。
sed -i -e 's/STACK/????/g' .txt
答案 0 :(得分:2)
如果file1中的变量是导出,则可以执行此操作,这需要s/pattern/replacement/e
命令的GNU sed
$ cat file1
export STACK=OVERFLOW
export PORT=3000
$ cat file2
First variable: STACK
Second variable: PORT
$ . file1
$ sed -i.bak -r 's/^([^:]+: *)(.+)/printf "%s%s\\n" "\1" "$\2"/e' file2
$ cat file2
First variable: OVERFLOW
Second variable: 3000