I'm doing a pretty standard tail
+ grep
:
tail -f some_log_file.txt | grep -q known-string
If I run the command without the -q
:
tail -f some_log_file.txt | grep known-string
I see output:
[Tue Feb 12 11:32:45 2019] known-string.
so I know the grep is matching. However when I add -q
the grep command doesn't exit, it just hangs there waiting for more output … even though the man page says it will "Exit immediately with zero status if any match is found":
-q, --quiet, --silent Quiet; do not write anything to standard output. Exit immediately with zero status if any match is found, even if an error was detected. Also see the -s or --no-messages option.
Can anyone explain why -q
isn't causing my grep to exit? I'm trying to chain a && beep
to the end so the grep
beeps when a match is found, but unless I can make it exit that won't work.
Best Answer
From StackOverflow post 'grep -q' not exiting with 'tail -f':
You will find more information and solutions in the linked post.