You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在kubectl get pods输出中排除RESTARTS列(无需自定义列)

用awk等工具排除kubectl输出中的RESTARTS列

你执行的kubectl命令输出如下:

$ kubectl get pods -o wide -n logging-app-global --field-selector=status.phase=Running --show-labels
NAME                                     READY   STATUS    RESTARTS        AGE     IP             NODE                           NOMINATED NODE   READINESS GATES   LABELS
ax-fmrsp-rpt-6c476796-gzsvv              1/1     Running   1 (5h40m ago)   5h40m   10.127.3.187   ip-10-127-3-187.ec2.internal   <none>           <none>            app=ax-fmrsp-rpt,pod-template-hash=6c476796
ax-manager-logging-sp-766574f4f9-6f8gb   1/1     Running   0               5h40m   10.127.2.87    ip-10-127-2-87.ec2.internal    <none>           <none>            app=ax-manager-logging-sp,pod-template-hash=766574f4f9

不用-o custom-columns手动定义所有列的话,可以用awk实现自动排除RESTARTS列,这里提供两种可行的命令:

方法一:通过筛选列索引排除

kubectl get pods -o wide -n logging-app-global --field-selector=status.phase=Running --show-labels | awk 'NR==1{for(i=1;i<=NF;i++)if($i!="RESTARTS")cols[i];next}{for(i=1;i<=NF;i++)if(i in cols)printf "%s ",$i;print ""}'

逻辑说明:

  • 处理表头行(NR==1)时,遍历所有字段,把非"RESTARTS"的列索引存入数组cols
  • 后续数据行仅输出索引在cols中的字段,自动跳过RESTARTS列

方法二:先定位列位置再排除

kubectl get pods -o wide -n logging-app-global --field-selector=status.phase=Running --show-labels | awk 'BEGIN{restarts_col=0}{if(NR==1){for(i=1;i<=NF;i++)if($i=="RESTARTS")restarts_col=i;}for(i=1;i<=NF;i++){if(i!=restarts_col)printf "%s ",$i}print ""}'

逻辑说明:

  • 先在表头行找到RESTARTS列的位置并记录
  • 所有行输出时直接跳过该位置的字段,实现排除效果

这两种方式都不需要手动列出所有保留列,能适配kubectl输出列顺序变化的场景。

内容的提问来源于stack exchange,提问作者Floren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 00:45:04