使用SED来替换的环境变量支架

问题描述 投票:0回答:2

我试图取代像[PROJECT_ID]和的环境变量PROJECT_ID一个括号中的文字......我想这样的:

export [email protected]
echo "[PROJECT_ID]" >> test.text
sed -i -e 's|[PROJECT_ID]|$PROJECT_ID|g' test.text

我得到这个:[$PROJECT_ID$PROJECT_ID$PROJECT_ID$PROJECT_ID$PROJECT_ID$PROJECT_ID$PROJECT_ID$PROJECT_ID$PROJECT_ID$PROJECT_ID]

我试过很多不同的方法,但似乎无法得到这个工作

bash sed
2个回答
0
投票
  • 每次运行您附加同一行TEXT.TXT。因此,SED过程多条线路
  • 单引号像's|[PROJECT_ID]|$PROJECT_ID|g'字面上的文本。但现在看来,要扩大$ PROJECT_ID。
  • 在这种情况下,不需要export
  • 这是不是真的清楚,你真正想要的

固定代码(我的猜测):

[email protected]
echo "[PROJECT_ID]" > test.text
sed -i -e "s|[PROJECT_ID]|$PROJECT_ID|g" test.text

0
投票

你必须使用反斜线括号逐字匹配。

[email protected]
echo "[PROJECT_ID]" > test.text
sed -i -e "s|\[PROJECT_ID\]|$PROJECT_ID|g" test.text
© www.soinside.com 2019 - 2024. All rights reserved.