我用command | grep -v "JavaScript strict warning"
它来过滤命令的输出(隐藏警告)。当我像这样测试 grep 命令时,它工作正常:
$ printf "JavaScript strict warning: warning\nNot a warning\nJavaScript strict warning: warning\nJavaScript strict warning: warning\n" | grep -v "JavaScript strict warning"
输出为:
Not a warning
但是,当我过滤正在运行的输出时,JavaScript strict warning
仍然会出现带有 的行。我相信这是因为原始命令正在生成另一个进程。有没有办法继续过滤新进程的输出?
答案1
您看到的输出可能是 stderr - 管道默认仅传递 stdout。
正如您在评论中指出的那样,您可以使用重定向来调整传递的内容。