仅列出与 apachectl -S 中以 "alias www." 为前缀的服务器名称不匹配的别名



我正在尝试收集与我的apache配置文件的ServerName指令不匹配的别名列表。这是我用来生成输出的语法。

apachectl -S | cut -d" " -f12,13,18,19 | sed -e 's/namevhost //;/.conf/d;/^$/d;/^127/d;/is$/d' | uniq

这是我的输出,由前面的命令"管道"生成。

logwatch-jgpihole.com
alias www.logwatch-jgpihole.com
jgpihole.com
alias jgpihole.local
alias piholeadmin.com
jgrantham.ddns.net

我试图实现的输出如下所示。

logwatch-jgpihole.com
jgpihole.com
alias jgpihole.local
alias piholeadmin.com
jgrantham.ddns.net

任何这方面的帮助将不胜感激。

显而易见的解决方案是将输出通过管道传输到

grep -v 'alias www.'

cutsedgrep的混乱通常表明您应该改用 Awk 来看待。

apachectl -S |
awk '{ a = $12 OFS $13 OFS $18 OFS $19
gsub(/namevhost /, "", a)
if (a !~ /.conf|^$|^127|is$|alias www./ && !b[a]++)
print a }'

这也有点纠结,因为我不知道你的apachectl输出是什么样的;可能很多事情都可以通过一些上下文来更容易理解和更新。

最新更新