Kubectl 命名空间脚本仅过滤名称
Kubectl Namespace script to filter only name
我正在尝试使用 Kubectl get namespaces 命令获取数据。
kubectl get namespace
NAME STATUS AGE
default Active 1d
kube-node-lease Active 1d
kube-public Active 1d
kube-system Active 1d
但我只想用名称过滤它。所以当你 运行 脚本时,它应该像这样显示。
kubectl get namespace
NAME
default
kube-node-lease
kube-public
kube-system
我已经尝试了一些 powershell 命令,但它对我不起作用。 Anykinda 帮助将不胜感激。谢谢!
我假设 kubectrl
的输出是纯文本,因此要对其进行操作,您需要进行文本解析(error-prone,这并不好玩),或者您需要将数据导入 PowerShell对象。
这将允许您读取 text/string 数据并将其解析为 PowerShell 对象。然后您可以简单地 Select-Object name
仅获取名称列。
第二个选项是使用 text/string 解析,但为此,您必须使用长度检测来提取列。 .
就是一个例子
这段代码对我有用:
kubectl get ns | awk '{print }'
尝试任一命令
kubectl get namespace --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'
kubectl get namespace | awk '{print }'
kubectl get namespace --no-headers -o custom-columns=":metadata.name"
kubectl get namespace -o=name | sed "s/^.\{10\}//"
我正在尝试使用 Kubectl get namespaces 命令获取数据。
kubectl get namespace
NAME STATUS AGE
default Active 1d
kube-node-lease Active 1d
kube-public Active 1d
kube-system Active 1d
但我只想用名称过滤它。所以当你 运行 脚本时,它应该像这样显示。
kubectl get namespace
NAME
default
kube-node-lease
kube-public
kube-system
我已经尝试了一些 powershell 命令,但它对我不起作用。 Anykinda 帮助将不胜感激。谢谢!
我假设 kubectrl
的输出是纯文本,因此要对其进行操作,您需要进行文本解析(error-prone,这并不好玩),或者您需要将数据导入 PowerShell对象。
这将允许您读取 text/string 数据并将其解析为 PowerShell 对象。然后您可以简单地 Select-Object name
仅获取名称列。
第二个选项是使用 text/string 解析,但为此,您必须使用长度检测来提取列。
这段代码对我有用:
kubectl get ns | awk '{print }'
尝试任一命令
kubectl get namespace --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'
kubectl get namespace | awk '{print }'
kubectl get namespace --no-headers -o custom-columns=":metadata.name"
kubectl get namespace -o=name | sed "s/^.\{10\}//"