2013-07-05 45 views
0

我正在嘗試定義服務器集羣的成員,減去運行此腳本的計算機。 「/ servers」文件是一個由應用程序控制的動態文件。羣集成員在這種格式的文件的最底部:host1.domain.com https://host1.domain.com:444從結果中排除主機名

我有這個片段從一個不同的腳本,要求所有的集羣成員。它爲我提供了FQDN格式的服務器。我想要做的是讓我的輸出排除當前的機器。我怎樣才能讓它搜索「/ servers」文件並顯示集羣成員!= $ hostname,可以這麼說?

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

回答

1

awk中可以做什麼的grep做,因此,建立在:

CLUSTER=$(
    awk -v hostname=$(hostname) -v domain="domain.com" ' 
     $1 ~ domain && $1 !~ hostname {print $1} 
    ' /servers 
) 
+0

這工作,你回答得非常快。謝謝!然而,在我看到你回答之前,我確實找到了另一種方式來做到這一點。 servers = $(awk'{print $ 1}'/ servers | grep domain.com | grep -v「$ {HOSTNAME}」) – 014