我正在运行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。什么是正确的语法?
答案 0 :(得分:1)
您可以将psql的stderr重定向到stdout,然后将其传递给grep:
psql --file=foo.sql "BAR-DB" 2>&1 | grep -- PATTERN