运行tail -f /var/log/*
有时可以显示垃圾/垃圾字符并用控制代码丢弃屏幕。
为了看到清洁的输出而以最小的信息丢失而过滤掉这些的好方法是什么?
- 通往
sed
的管道,剥离ANSI代码(可能丢弃控制台的代码(。 - 通往
strings
的管道,仅打印实际字符串,因为/var/log/
中的某些文件包含二进制数据。
tail -f /var/log/* | sed $'s#e[[(][[:digit:]]*[[:print:]]##g' | strings
您可以通过执行此操作将这些助手别名添加到您的外壳配置文件中:
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