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

时间:2019-08-15 18:54:30

标签: linux bash grep tail

除了文件名中包含特定字符串的文件外,我想尾随目录中的所有文件。另外,我想突出显示命令运行时文件中包含的某些单词。

这是针对CentOS的,专门用于尾随所有domlog或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。

1 个答案:

答案 0 :(得分:1)

默认情况下不启用扩展通配符,您需要使用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)'