linux - 如何在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'
解决方案
与sed
. 找到第一行name
,删除之前的所有内容:
, :
然后退出sed
。
sed -n '/name/{ s/.*: //; p; q}' deployment.yaml
输出:
nginx-部署
推荐阅读
- python - 我可以关闭由不同进程建立的连接吗
- python-3.x - 如何从列表列表中随机选择
- google-apps-script - 如何重构较长的 Google Sheet 公式或转换为自定义函数?
- python - 用户输入最后一条数据后的 UnboundLocalError
- xpath - Xpath 用于在任何其他元素或元素结尾之前获取此元素之后的所有元素?
- java - java.lang.IllegalStateException 如果在蓝牙扫描期间滚动
- ios - 延迟出列可重用单元格
- curl - 使用 Curl 和 Windows 命令行将照片发布到 Twitter
- python - 如何访问熊猫数据透视表的索引列
- javascript - 如果一个在第二级菜单列表中同时处于活动状态,如何设置停用的其他组列表?