
NAME READY STATUS RESTARTS AGE
grepme 1/1 Running 0 20h
grepmetoo 1/1 Running 0 19h
Результат:
grepme
grepmetoo
Как выполнить grep-фильтрацию всего содержимого под «NAME» и удалить все остальное?
решение1
Использовать
command | cut -d' ' -f1 | tail -n+2
# or if delimiter is tab
command | cut -f1 | tail -n+2
# or
command | awk 'NR>1{print $1}'
# or
command | csvcut -d' ' -c NAME | tail -n+2
# or if delimiter is tab
command | csvcut -t -c NAME | tail -n+2
Как вы упомянули grep
, вы также можете использовать
command | grep -o '^[^[:blank:]]*' | tail -n+2
Но я бы предпочел один из вышеперечисленных вариантов, так как его гораздо сложнее читать. У
решения cut
наилучшая производительность, csvcut
намного худшая.
решение2
Для начала рассмотрите возможность вывода только желаемых данных:
kubectl get pods --no-headers=true -o custom-columns=":metadata.name"
или
kubectl get pods --no-headers=true -o name
(Взято изэта ветка Stack Overflowиобзор kubectl)