过滤脚本输出并将其打印在屏幕上,同时将其重定向到文件中

过滤脚本输出并将其打印在屏幕上,同时将其重定向到文件中

我创建了一个简单的 shell 脚本,在其中打印一些输出消息,并调用一个非常长的命令来生成非常长的日志。我使用以下命令将命令生成的日志重定向到名为 jobLog.log 的文件中回答。所以我的代码是这样的:

#!/bin/bash

echo "Submiting a job to ...."

sudo command_with_huge_output > jobLog.log 2>&1 && echo "Job ended! Log at jobLog.log" 

我想将此日志中的一行重定向到屏幕。当作业结束时,我在文件上使用 grep,如下所示:

less jobLog.log | grep LineIwanttoFind 

这会返回一行我有兴趣在命令运行时打印的行。如何过滤我想要的行,并在命令运行时在屏幕中重定向它?当然我也想发送 jobLog.log 文件中的完整日志。

感谢您的任何建议

答案1

像这样使用三通:command_with_huge_output | tee jobLog.log | grep 'LineYouWantToFind'

因此,command_with_huge_output 的所有标准输出都将转到 jobLog.log 和 grep 的管道。

相关内容