为了账号安全,请及时绑定邮箱和手机立即绑定

如何在文本文件中替换$ {}占位符?

如何在文本文件中替换$ {}占位符?

慕尼黑5688855 2019-12-10 10:00:39
我想将“模板”文件的输出通过管道传递到MySQL,该文件具有${dbName}散布的变量。替换这些实例并将输出转储到标准输出的命令行实用程序是什么?
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

更新资料

这是来自yottatsa的一个类似问题的解决方案,它仅替代$ VAR或$ {VAR}之类的变量,并且是简短的单行代码


i=32 word=foo envsubst < template.txt

当然,如果i和word在您的环境中,那只是


envsubst < template.txt

在我的Mac上,它看起来像是作为gettext的一部分并从MacGPG2安装的


旧答案

这是mogsie在类似问题上的解决方案的改进,我的解决方案不需要escale双引号,mogsie的需要,但是他只是一个衬里!


eval "cat <<EOF

$(<template.txt)

EOF

" 2> /dev/null

这两种解决方案的强大之处在于,尽管反斜杠是一个扩展名,但您只会得到几种类型的shell扩展,这些扩展通常不会发生$((...)),`...和$(...)。在这里转义字符,但是您不必担心解析存在错误,并且多行就可以了。

查看完整回答
反对 回复 2019-12-10
  • 3 回答
  • 0 关注
  • 1376 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信