O buffer está ficando no caminho.
Use um while read line
do shell, que deve ler linha por linha e evitar a maioria dos problemas com o buffer:
tail -f /var/log/httpd/modsec_audit.log | while read line; do
echo "$line" | sed 's/[^\/]*/\./;s/].*$//g' | awk '{print $0}' | xargs cat
done
Embora você provavelmente possa fazer melhor do que isso, usando o shell (bash) para corresponder ao nome do arquivo da linha de log também:
tail -f /var/log/httpd/modsec_audit.log | while read line; do
line=${line/*([^\/])/.}
line=${line%]*}
[[ -n "${line}" ]] && cat "${line}"
done