Bash:Tail 没有垃圾字符的日志

Bash:Tail logs without junk characters

运行 tail -f /var/log/* 有时会显示 junk/garbage 个字符,并在屏幕上显示控制代码。

什么是过滤掉这些内容的好方法,以便看到信息丢失最少的干净输出?

  1. 通过管道传输到 sed,以去除 ANSI 代码(那些可能会破坏控制台的代码)。
  2. 管道到 strings,只打印实际字符串,因为 /var/log/ 中的某些文件包含二进制数据。

tail -f /var/log/* | sed $'s#\e[\[(][[:digit:]]*[[:print:]]##g' | strings

您可以通过执行以下命令将这些助手别名添加到您的 shell 配置文件中:

cat >>~/.profile <<EOF

# ANSI codes stripping helpers
alias noansi="sed $'s#\e[\[(][[:digit:]]*[[:print:]]##g'"
alias noansistrings="noansi|strings"
EOF
. ~/.profile

然后,例如,您将能够 运行:

tail -f /var/log/* | noansistrings