如何将 Postgresql“psql”错误传递给 grep?

问题描述 投票:0回答:1

我正在运行一个

psql
查询,如下所示:

$ psql --file=foo.sql "BAR-DB"

其中

foo.sql
包含查询。
foo.sql
的语法很糟糕,因此输出是错误消息列表。我的计划是将输出通过管道传输到
grep
,以便我可以过滤特定的错误消息,但是

$ psql --file=foo.sql "BAR-DB" | grep PATTERN

似乎什么也没做。

psql
的文档显示了可选标志:

-o, --output=FILENAME    send query results to file (or |pipe)

但我不确定如何使用它将输出通过管道传输到 grep。正确的语法是什么?

postgresql grep pipe psql
1个回答
3
投票

您可以将 psql 的 stderr 重定向到 stdout,然后通过管道将其传输到 grep:

psql --file=foo.sql "BAR-DB" 2>&1 | grep -- PATTERN
© www.soinside.com 2019 - 2024. All rights reserved.