我创建了一个简单的 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 的管道。