mar*_*eks 2 grep stderr piping
我有一个失败的脚本,因为缺少一些文件.
运行脚本并将其管道连接到grep
$ ./adder | grep Error
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
Error in <TFile::ReadBuffer>: error reading all requested bytes from file v2.2_V3_194424_194712/output_853.root, got 0 of 300
Error in <TFile::Init>: v2.2_V3_194424_194712/output_853.root not a ROOT file
Run Code Online (Sandbox Code Playgroud)
和不同文件的类似输出
我想v2.2_V3_194424_194712/output_853.root从这个输出中提取根文件,但是做./adder | grep Error | grep .root不起作用.
这是为什么?
您需要将标准错误流(数字代码:2)从管道中的第一个命令重定向到标准输出流(数字代码:1),如下所示:
$ ./adder 2>&1 | grep Error
Run Code Online (Sandbox Code Playgroud)