繁体   English   中英

kubectl:获取剪切的 pod 名称

[英]kubectl: get cut pod name

我正在玩“ kubectl get pods... ”,并且有用例:

我有一些豆荚回来了(让我们只留下名字):

$ kubectl get pods | cut -d' ' -f1

admin-fe-124
admin-be-12345
some-Other-Staff-123

问题:是否可以仅先过滤掉(使用kubectl get pods )名称的 2 个单词(3...4...如我所愿)? 我想看以下内容:

$ kubectl get pods... (some magic)

admin-be
admin-fe
some-Other

那么,“一些魔法”下应该有什么? 谢谢!

你的意思是只打印第一列,例如姓名?

kubectl get po | awk '{print $1}'
NAME
kubeserve-68776dd94c-2wmc9
kubeserve-68776dd94c-qvg6c
kubeserve-68776dd94c-vqbcf
myreplicaset-gd6hj
myreplicaset-mfthn
myreplicaset-nsb9s
nginx-7db9fccd9b-hrp57
nginx-7db9fccd9b-m6t6l
ssd-monitor-lgmmr
ssd-monitor-m5sz6

然后你可以使用

awk '{print $1, $2}'

编辑:或者你的意思是打印前两个条目?

在这种情况下,只需将输出管道设置并跳过第一行,例如

kubectl get po | awk '{print $1}' | sed -n 2,3p
kubeserve-68776dd94c-2wmc9
kubeserve-68776dd94c-qvg6c

用这种方法试试

kubectl get pods | awk -F '-' {'print $1,$2'}

其中 '-' 就像一个分隔符, $1,$2 ... 是单词

使用数组和变量替换

# test function to create needed output
test_names () {
    echo "
        admin-fe-124
        admin-be-12345
        some-Other-Staff-123
    "
}

test=( $(test_names) ) # create an array
echo "${test[@]%-*}"   # use variable substitution to cut last part

在你的情况下

names=( $(kubectl get pods | cut -d' ' -f1) )
echo "${names[@]%-*}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM