awk print 1-й ряд с условием - PullRequest
       0

awk print 1-й ряд с условием

2 голосов
/ 16 февраля 2020

Команда:

kubectl get pods -n hello | awk '$1 ~ "hello-uwsgi-deployment"  {print $1}'

вывод

hello-uwsgi-deployment-5b7498f864-4bfrx
hello-uwsgi-deployment-5b7498f864-h9rxz
hello-uwsgi-deployment-5b7498f864-qlg8z
hello-uwsgi-deployment-5b7498f864-r5nfs
hello-uwsgi-deployment-5b7498f864-vxr6x

Как мне напечатать только первую строку с вышеуказанным условием, используя awk?

Я пытался

kubectl get pods -n hello |
awk '($1 ~ "hello-uwsgi-deployment") && ('NR==1') {print $1}'

но ничего не выводится.

РЕДАКТИРОВАТЬ: kubectl get pods -n hello | awk '($1 ~ /hello-uwsgi-deployment/){print;exit}' это прекрасно работает.

Как получить одинаковую работу с несколькими условными операторами, используя == и NR==

Ответы [ 2 ]

3 голосов
/ 16 февраля 2020

Если я правильно понял ваш вопрос, вы хотите напечатать только первую строку, в которой есть строка hello-uwsgi-deployment, тогда не могли бы вы попробовать следующее Я также использую exit, чтобы он НЕ читал весь файл Input_file и сэкономил бы нам время.

kubectl get pods -n hello | awk '($1 ~ /hello-uwsgi-deployment/){print;exit}'


ИЛИ вы хотите просто выполнить строку поиска во всей строке попробуйте следующее:

kubectl get pods -n hello | awk '/hello-uwsgi-deployment/{print;exit}'
1 голос
/ 16 февраля 2020

Вы можете перенаправить вывод в команду head:

kubectl get pods -n hello | awk '$1 ~ "hello-uwsgi-deployment"  {print $1}' | head -n 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...