管道psql错误输出到grep
我正在运行一个管道psql错误输出到grep,grep,pipe,psql,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 (o
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--file=foo.sql“BAR-DB”2>&1|grep--PATTERN怎么样?也许这篇文章可以帮助你:@codefrester你的第一个建议让我得到了我想要的!你介意把它作为一个答案转寄给我吗?这样我就可以把它标上答案了?(你能解释一下
2>&1
和--
在做什么吗?)