Linux
唯一的集群名稱
我們有幾台集群伺服器,需要檢查每個集群中的一台伺服器。如何比較列表中的條目以僅返回每個集群中的一台伺服器?所有伺服器名稱如下
$$ a-z $$-$$ a-z $$-$$ a-z $$$$ 0-9 $$.domain_name 範例伺服器列表。
test-rac-1.domain_name test-rac-2.domain_name test-rac-3.domain_name test-rac-dg1.domain_name test-rac-dg2.domain_name test-rac-dg3.domain_name qat-rac-1.domain_name qat-rac-2.domain_name qat-rac-3.domain_name ser-ser-ser.domain_name long-serv-name.domain_name
結果伺服器列表。
test-rac-1.domain_name test-rac-dg1.domain_name qat-rac-1.domain_name ser-ser-ser.domain_name long-serv-name.domain_name
– 結果可以是集群中的任何伺服器。
您可以使用正則表達式使用 grep 過濾所有行。
grep '[a-z-]1\?\.domain_name' file > newfile
這將返回所有帶有字母或減號的行以及
1
“.domain_name”之前的可選行。逆向操作是刪除“.domain_name”之前包含數字 > 1 的所有行:
grep -v '\([2-9]\|[0-9]1\)\.domain_name' file > newfile
這將匹配“.domain_name”之前的最後一位數字為 2 到 9 的行或最後一位數字至少為兩位的數字
1
(以匹配 11 或 21 等)。該-v
選項用於選擇不匹配的行。