首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Postgres查询的结果直接存储到Bash4中的数组中?

将Postgres查询的结果直接存储到Bash4中的数组中?
EN

Stack Overflow用户
提问于 2017-06-19 10:45:20
回答 2查看 2.1K关注 0票数 1

我正在尝试运行如下Postgres查询,并将结果存储到一个数组中:

代码语言:javascript
复制
v2_ids=$(psql $(credstash get database/path/here) -tc "select distinct(user_id) from table where yada yada yada..." )

read -a arr_ids_temp <<< $v2_ids

有没有更好的方法来做这件事?似乎read -a有时只获取第一个结果,我不确定为什么。

EN

回答 2

Stack Overflow用户

发布于 2020-02-10 16:06:59

请参考以下代码:

代码语言:javascript
复制
IFS=$'\n' res=(`psql -tA database username -c 'select column_name from table_name where blah blah...'`)

  • 我们必须告诉bash基于'\n‘delimiter.
  • psql options -tA将结果存储在数组中,用于删除页眉/页脚等以及删除前导和尾部空白。

${res}包含第一行的值,数组中的每个元素分别包含每行的值。

其他提示:

为了将一行中的所有数据放入数组,

代码语言:javascript
复制
IFS='|' res=(`psql -tA database username -c 'select name1,name2,name3 from table_name where blah blah...'`)

  • 这里我告诉bash将psql结果存储在基于|delimiter的数组中。
票数 2
EN

Stack Overflow用户

发布于 2017-06-19 15:35:55

这应该可以很好地工作,但是使用带有选项-A (未对齐输出模式)、-q (禁止显示信息输出)和-t (没有列名、页眉和页脚)的psql

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44621566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档