This question already has an answer here:

I'd like to integrate the following, similar, question: `tail -f` until text is seen

The proposed solution consists in using the sed command which, when the test is found, exits. Tail will then fail at the next line as the sed is no longer in the pipe and the process will stop:

tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'

My problem is that I have a spring boot log stopping with the line:

org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive 
 [/opt/tomcat/webapps/my-app.war] has finished in [63,859] ms

This is also the last line of the catalina.out (until a new deploy takes place, that is). For this reason the tail -f command will just hang even though the sed exits and my watcher will stay stuck.

Is there a way to make the entire pipeline immediately fail when sed finds the line?


marked as duplicate by Stéphane Chazelas linux Mar 16 '18 at 15:54

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Browse other questions tagged or ask your own question.