管道 psql 错误输出到 grep
Pipe psql error output to grep
我是 运行 一个 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。正确的语法是什么?
您可以将 psql 的 stderr 重定向到 stdout,然后将其通过管道传输到 grep:
psql --file=foo.sql "BAR-DB" 2>&1 | grep -- PATTERN
我是 运行 一个 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。正确的语法是什么?
您可以将 psql 的 stderr 重定向到 stdout,然后将其通过管道传输到 grep:
psql --file=foo.sql "BAR-DB" 2>&1 | grep -- PATTERN