I am using
socat to intercept UDP messages and send them to a named pipe:
socat UDP-LISTEN:9999,fork PIPE:/tmp/mypipe,append
I am able to tail this pipe and see all the messages it receives.
I would like to pipe the output of
tail -f /tmp/mypipe to
sed to do some post-processing of the messages, but unfortunately some of them are not newline-terminated. This is a problem because it means multiple distinct UDP messages could be on the same line, and also because
tail -f /tmp/mypipe | sed ... does not pass the last line if it is unterminated.
Ideally I would like to be able to add a custom message delimiter as they are sent to my pipe, so that I can easily find the message boundaries. If that's not possible then is there some way I can follow this file and pipe the final (potentially unterminated) line to another program for post-processing?