Grep查找行中不匹配的值
我有一个Kubernetes集群,里面有很多豆荚。每个吊舱有任意数量的容器。从命令行中,我可以列出所有POD并获得如下输出:Grep查找行中不匹配的值,grep,Grep,我有一个Kubernetes集群,里面有很多豆荚。每个吊舱有任意数量的容器。从命令行中,我可以列出所有POD并获得如下输出: pod1 2/2 pod2 1/3 pod3 1/2 pod4 4/5 pod5 5/5 pod5 0/1 ...etc... 我想要一个grep,它会告诉我那些容器还没有启动的pod。i、 e.列出所有podN x/ywherex=y。我得到的最接近的结果是: kubectl获取播客| grep-e“1/[^1]”-e“2/[^2]”-e“3/[^3]”-
pod1 2/2
pod2 1/3
pod3 1/2
pod4 4/5
pod5 5/5
pod5 0/1
...etc...
我想要一个grep,它会告诉我那些容器还没有启动的pod。i、 e.列出所有podN x/y
wherex=y
。我得到的最接近的结果是:
kubectl获取播客| 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}]”
抑制所有与grep具有相同数字的行:
kubectl get pods | grep -vE '([0-9]+)/\1'
或
或
输出:
pod2 1/3
pod3 1/2
pod4 4/5
pod5 0/1
pod2 1/3
pod3 1/2
pod4/5
POD50/1
kubectl get pods | sed -E '/([0-9]+)\/\1/d'
pod2 1/3
pod3 1/2
pod4 4/5
pod5 0/1