管道psql错误输出到grep

时间:2018-06-08 13:28:47

标签: grep pipe psql

我正在运行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。什么是正确的语法?

1 个答案:

答案 0 :(得分:1)

您可以将psql的stderr重定向到stdout,然后将其传递给grep:

psql --file=foo.sql "BAR-DB" 2>&1 | grep -- PATTERN