我有一个Kubernetes集群,里面有很多豆荚。每个吊舱都有任意数量的容器。在命令行中,我可以列出所有Pod并获得如下输出:
pod1 2/2
pod2 1/3
pod3 1/2
pod4 4/5
pod5 5/5
pod5 0/1
...etc...
我想要一个grep,它将向我显示具有尚未启动的容器的容器。即列出所有podN x/y
,其中x!=y
。我最近的是:
kubectl get pods | grep -e "1/[^1]" -e "2/[^2]" -e "3/[^3]" -e "4/[^4]" -e "5/[^5]"
这可行,但是我希望grep(或其他Linux CLI工具)中有一种方法可以在没有无尽-e术语的情况下做到这一点,例如通过将匹配项分配给变量
kubectl get pods | grep "${var=[0-9]+}/[^${var}]"
答案 0 :(得分:2)
使用grep禁止所有具有相同编号的行:
kubectl get pods | grep -vE '([0-9]+)/\1'
或
kubectl get pods | awk -F ' +|/' '$2!=$3'
或
kubectl get pods | sed -E '/([0-9]+)\/\1/d'
输出:
pod2 1/3 pod3 1/2 pod4 4/5 pod5 0/1