如何尾部所有文件并通过通配符名称排除某些文件?

How do I tail all files and exclude some files by wildcard name?

我想跟踪目录中的所有文件,文件名中包含特定字符串的文件除外。另外,我想突出显示文件中包含的某些单词,因为命令是 运行.

这是针对 CentOS 的,专门用于跟踪所有 domlogs 或 httpd 访问日志。

虽然这些直接通过 bash 起作用,但它们在包含在脚本中时不起作用。

添加到脚本时,我还会在以下代码片段之前添加 #!/bin/bash。

这是我正在使用的命令:

!#/bin/bash

export GREP_COLOR='1;37;41'

tail -f /var/log/apache2/domlogs/!(*bytes*) | grep --color=auto -E '(^|Ubuntu|xmlrpc|spider|spider|python|crawler|Crawler|wp-login|wp-admin|zoom)'

当它命中第一个 (.

我期待它继续显示所有带有突出显示文本的 domlog。

扩展通配符默认不启用,您需要使用shopt启用它们。

#!/bin/bash

shopt -s extglob
export GREP_COLOR='1;37;41'

tail -f /var/log/apache2/domlogs/!(*bytes*) | grep --color=auto -E '(^|Ubuntu|xmlrpc|spider|spider|python|crawler|Crawler|wp-login|wp-admin|zoom)'