我有一个带有SQL查询的文件。我试图使用先前查询的结果更改查询中WHERE子句的值。
所以基本上,我运行我的第一个查询并将结果存储在变量中:"最后"。
然后,在我的bash文件中,我有这一行:
sed -i 's/^AND \`id\` \> ([0-9]+)$/AND `id` > $LAST/g' /query_resources/query.sql
正如您所看到的,我尝试使用正则表达式在我的查询文件中找到类似于此行的行...
AND `id` > 12345
...并用我存储在变量中的任何内容替换数字串。
我遇到的问题是该行根本没有改变,或者我甚至已经拥有该文件的内容 - 我正在进行搜索并替换 - 完全清空进行。
答案 0 :(得分:0)
You need to change to double-quotes in order to convert $LAST
to it's actual value, and you also need to escape the +
and all the ` signs:
sed -i "s/^AND \`id\` > [0-9]\+/AND \`id\` > $LAST/g" /query_resources/query.sql