Grep для несовпадающих значений в строке - PullRequest
1 голос
/ 04 апреля 2019

У меня есть кластер Kubernetes с большим количеством стручков. У каждого контейнера есть произвольное количество контейнеров. Из командной строки я могу перечислить все модули и получить вывод вроде:

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 (или других инструментах CLI Linux) есть способ, которым я мог бы сделать это без бесконечных терминов -e, например, присваивая совпадение переменной

kubectl get pods | grep "${var=[0-9]+}/[^${var}]"

1 Ответ

2 голосов
/ 04 апреля 2019

Подавляет все строки с одинаковыми номерами с помощью 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...