Como a tubulação não funcionava diretamente, tentei conectar tail -f
, sed
e less +F
por meio de um arquivo temporário. Terminou com o seguinte
function lessx {
[ -f "$1" ] || { echo "First argument must be a file"; return 1; }
local tmpfile=$(mktemp /tmp/"$(basename "$1.XXX")")
[ -f "$tmpfile" ] || { echo ''mktemp' failed'; return 1; }
tail -f "$1" | stdbuf -i0 -o0 sed 's:\\?\n:\n:g' > "$tmpfile" &
less +F "$tmpfile"
kill %% # kill the tail pipeline, after less exits
rm "$tmpfile"
}
que faz o trabalho, embora seja mais complicado do que eu gostaria. Observe que meu SunOS tail
não entende --pid
, então eu mato manualmente o tail
pipeline.