![](/img/trans.png)
[英]kubectl: how to display pod logs without specyfing the pod name explicitly?
[英]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.