行中不匹配值的Grep

时间:2019-04-04 17:34:15

标签: grep

我有一个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}]"

1 个答案:

答案 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