【发布时间】:2018-01-27 12:34:38
【问题描述】:
我希望将以下命令的输出存储在我的 postgres 数据库中
sudo -u postgres -H -- psql -d firstdb -c"select count(col2) from table2;"
放入 shell 中定义的变量中。 我在某处看到过这种方式-
abc=sudo -u postgres -H -- psql -d firstdb -c"select count(col2) from 表2;" echo abc
但似乎无法正常工作 有没有其他方法来存储输出以便应用剪切查询来获取值并检查列的大小??
【问题讨论】:
-
您可以在大多数 shell 中使用
abc=$(command)将输出存储到变量中。 -
我确实使用了 $(command) 但这也没有用!!
-
要清楚,你会这样做:
abc=$(sudo -u postgres -H -- psql -d firstdb -c"select count(col2) from table2;"),然后echo $abc查看输出...注意,这将捕获标准输出,而不是标准错误... -
有没有办法从这个标准输出中剪切或grep计数(*)值
-
我不确定您在追求什么,但您可以使用
awk '{print $2}'打印输出的特定列(在本例中为第二列)。您也可以使用sed从文本中删除任何count=_val_模式。或者,如果您实际上是在寻找行数,您可以将输出通过管道传输到wc。您必须man这些命令才能了解如何正确使用它们。
标签: linux postgresql shell centos