背景:我的 k8s 集群中有兩個部署(例如)如下:
foo-bar
foo-bar-asd
在我的管道中,我想實作邏輯來檢查是否已經部署了任何名為“foo-bar”的部署。
如何構造我的命令以僅獲取/輸出“foo-bar”,而不是“foo-bar-asd”?
我嘗試過使用正則運算式,'^foo-bar$' 等但沒有任何成功,通過谷歌搜索/類似的 stackoverflow-questions 找到。
我當前的命令(同時獲取):
kubectl -n my-namespace get deployments | grep foo-bar
預先感謝您的任何幫助!
編輯:意識到乞丐不能成為選擇者,但除了獲取“foo-bar”之外,我還需要該命令不明確提及“foo-bar-asd”。(構建一個放置此命令的管道,并且應該對不同的應用程式是通用的。沒有完全解釋,但希望有一點。)
uj5u.com熱心網友回復:
grep命令也可以排除某些字串。你可以運行類似的東西
kubectl -n my-namespace get deployments | grep foo-bar | grep -v foo-bar-asd
這應該向您展示您在尋找什么。
uj5u.com熱心網友回復:
由于您的搜索模式包含連字符,因此您不能使用“僅整個單詞”,因為連字符被視為單詞分隔符,所以我的第一個答案是錯誤的。
你需要說你的話代表整行,你可以這樣做:
grep "^foo-bar$"
^代表“行首”。
$代表“行尾”。
編輯:第一個答案,這是錯誤的。
我的grep( GNU grep 3.4 ... 2019-12-29) 版本有一個-w開關,我可以用它來過濾“僅整個單詞”,所以在你的情況下它是:
grep -w "foo-bar"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/430874.html
標籤:重击 Kubernetes 天蓝色
