我创建了一个简单的 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 文件中发送完整的日志。
感谢您的任何建议
像这样使用 tee :
command_with_huge_output | tee jobLog.log | grep 'LineYouWantToFind'
因此,command_with_huge_output 的所有标准输出都将进入 jobLog.log 并进入到 grep 的管道。