我有一个SQL查询文件要填充变量(域名)和两个日期值(开始日期和结束日期)。 我们的想法是使用SED命令编写脚本来创建每个月和域的SQL查询文件。
使用SED搜索和替换SQL查询文件是否明智? 当我这样做时,我需要从日期值中转义字符。
SQL文件的部分如下所示:
date < ''
AND
date >= ''
AND
to_domain = ''
示例的输入:
to_domain = testing.com date = 2017-04-01 date = 2017-04-02
任何明智的想法?
对不起,我没有足够的SED经验。 我是谷歌的屁股,但到目前为止还没有运气。
提前致谢!
答案 0 :(得分:0)
您可以在模板查询文件中使用环境变量,并使用envsubst
生成新文件以替换env vars。
鉴于以下query-template.txt
:
date < '$start_date'
AND
date >= '$end_date'
AND
to_domain = '$to_domain'
您可以使用query.txt
生成生成envsubst
并预先定义您的变量:
export start_date=2017-04-01
export end_date=2017-04-02
export to_domain=testing.com
envsubst < query-template.txt > query.txt
或者在执行替换之前将所有变量export
放入文件vars.sh
和source
中:
source vars.sh
envsubst < query-template.txt > query.txt