我有一个bash shell脚本。我有一个psql复制命令,它从数据库中捕获了一些数据行。来自数据库的数据是我将在bash脚本中使用的实际sql语句。我将语句放在数据库中,因为它们的长度各不相同,我希望能够动态调用某些语句。
1)我不确定在复制声明中使用什么分隔符。我不能使用逗号或管道,因为它们来自数据库中的数据。我尝试了几个随机字符,因为那些不在我的数据库中,但是复制有一个合适的,只需要一个ascii字符。
同样使我需要为每一行获取query_name和query_string的事情变得复杂。
这就是我现在拥有的。我通过副本获得了所有数据,但现在我只想将数据推送到一个数组中,以便稍后我可以循环它:
q="copy (select query_name,query_string from query where active=1)
to stdout delimiter ','"
statements=$(psql -d ${db_name} -c "${q}")
statements_split=(`echo ${statements//,/ }`)
echo ${statements_split[0]};
答案 0 :(得分:0)
在我看来,你实际上想要构建类似于将query_name映射到query_string的字典(关联数组)。 bash
并不是处理复杂数据结构的最佳选择。如果这是一个选项,我建议使用Perl
进行此类任务。