从结果中排除主机名

时间:2013-07-05 18:49:27

标签: awk sed grep hostname

我正在尝试定义服务器群集的成员减去运行此脚本的计算机。 “/ servers”文件是由应用程序控制的动态文件。群集成员位于文件的最底部,格式为:host1.domain.com https://host1.domain.com:444

我有一个来自不同脚本的代码片段,要求所有集群成员。它以FQDN格式提供服务器。我想要做的是让我的输出排除当前机器。如何让它搜索“/ servers”文件并显示集群成员!= $ hostname,可以这么说?

# !/bin/bash
CLUSTER=$(awk '{ print $1 }' /servers | grep domain.com)

1 个答案:

答案 0 :(得分:1)

awk可以做grep所做的事情,所以在:

中构建它
CLUSTER=$(
    awk -v hostname=$(hostname) -v domain="domain.com" '
        $1 ~ domain && $1 !~ hostname {print $1}
    ' /servers
)