【问题标题】:Pipe psql error output to grep管道 psql 错误输出到 grep
【发布时间】:2018-11-18 13:53:51
【问题描述】:

我正在像这样运行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 --file=foo.sql "BAR-DB" 2>&1 | grep -- PATTERN 怎么样?
  • 也许这篇文章会对你有所帮助:stackoverflow.com/q/28436918/6862601
  • @codeforester 你的第一个建议让我得到了我想要的!您介意将其重新发布为答案,以便我将其标记为已回答吗? (你能解释一下2>&1-- 在做什么吗?)

标签: grep pipe psql


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 2021-09-10
    • 2012-12-01
    相关资源
    最近更新 更多