Как выполнить grep строк из вывода команды

Как выполнить grep строк из вывода команды
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)

Связанный контент