首页 > 解决方案 > 如何在k8s yaml文件中获取名称选项的文本值

问题描述

我有很多 yaml 格式的 k8s 部署文件。

我只需要在这些文件中获取第一次出现的 name 选项的值。

deployment.yaml 示例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

我只需要获得价值nginx-deployment

我试过了,但没有成功:

grep 'name: ' ./deployment.yaml | sed -n -e 's/name: /\1/p'

标签: linuxbashkubernetes

解决方案


sed. 找到第一行name,删除之前的所有内容: : 然后退出sed

sed -n '/name/{ s/.*: //; p; q}' deployment.yaml

输出:

nginx-部署

推荐阅读