Bash:Tail 没有垃圾字符的日志
Bash:Tail logs without junk characters
运行 tail -f /var/log/*
有时会显示 junk/garbage 个字符,并在屏幕上显示控制代码。
什么是过滤掉这些内容的好方法,以便看到信息丢失最少的干净输出?
- 通过管道传输到
sed
,以去除 ANSI 代码(那些可能会破坏控制台的代码)。
- 管道到
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
运行 tail -f /var/log/*
有时会显示 junk/garbage 个字符,并在屏幕上显示控制代码。
什么是过滤掉这些内容的好方法,以便看到信息丢失最少的干净输出?
- 通过管道传输到
sed
,以去除 ANSI 代码(那些可能会破坏控制台的代码)。 - 管道到
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