0

I have created a simple shell script where I print some output messages and I invoke a really long command which generates a very long log. I redirect the log generated by the command in a file named jobLog.log using this answer. So my code is this:

#!/bin/bash

echo "Submiting a job to ...."

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

I want to redirect one line from this log to the screen. When the job ends I use grep on the file like:

less jobLog.log | grep LineIwanttoFind 

and this returns a line I am interested to print while the command is running. How can I filter the line I want, and redirect it in the screen while the command is running? Of course I also want to send the full log in jobLog.log file.

Thanks for any suggestion

1
1

Use tee like this : command_with_huge_output | tee jobLog.log | grep 'LineYouWantToFind'

So all the standard output of the command_with_huge_output will go to the jobLog.log and to the pipe to grep.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.