Проблема в том, что иногда вывод вашей команды rancher
имеет 5 полей на строку, а иногда 4.
Следующий вкладыш awk one -будет печатать правильное поле в зависимости от того, сколько полей (использует встроенная awk -переменнаяNF
)в любой заданной строке ввода:
$ awk 'NF==5 {print $4}; NF==4 {print $3}' clusters.txt
NAME
test-cluster
prod-cluster
dev-cluster
В качестве альтернативы, если вы можете быть уверены, что пустых строк не будет, вы можете использовать:
$ awk '{print $(NF-1)}' clusters.txt
NAME
test-cluster
prod-cluster
dev-cluster
Если есть пустая строка, вы получите сообщение об ошибке, подобное этому:
awk: cmd. line:1: (FILENAME=clusters.txt FNR=5) fatal: attempt to access field -1
Этого можно избежать с помощью:
awk 'NF>=1 {print $(NF-1)}' clusters.txt