用于完成SQL查询文件的SED命令

时间:2017-04-21 21:11:14

标签: bash sed escaping character

我有一个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经验。 我是谷歌的屁股,但到目前为止还没有运气。

提前致谢!

1 个答案:

答案 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.shsource中:

source vars.sh
envsubst < query-template.txt > query.txt