gpt4 book ai didi

bash - 如何替换文本文件中的 ${} 占位符?

转载 作者:行者123 更新时间:2023-11-29 08:38:21 27 4
gpt4 key购买 nike

我想将"template"文件的输出通过管道传输到 MySQL,该文件散布着 ${dbName} 等变量。替换这些实例并将输出转储到标准输出的命令行实用程序是什么?

输入文件被认为是安全的,但可能存在错误的替换定义。执行替换应避免执行意外的代码执行。

最佳答案

更新

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

i=32 word=foo envsubst < template.txt

当然如果iword在你的环境中,那么它就是

envsubst < template.txt

在我的 Mac 上,它看起来像是作为 gettextMacGPG2

的一部分安装的

旧答案

这是对来自 mogsie 的解决方案的改进在类似的问题上,我的解决方案不要求您对双引号进行缩放,mogsie 需要,但他的是单行!

eval "cat <<EOF
$(<template.txt)
EOF
" 2> /dev/null

这两个解决方案的强大之处在于,您只能得到几种通常不会出现的 shell 扩展类型 $((...))、`...` 和 $(...),尽管反斜杠在这里是一个转义字符,但是你不用担心解析有bug,它做多行就好了。

关于bash - 如何替换文本文件中的 ${} 占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/415677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com