我有很多 yaml 格式的 k8s 部署檔案。
我只需要在這些檔案中獲取第一次出現的 name 選項的值。
部署示例.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'
uj5u.com熱心網友回復:
如果您已為 yamlyq安裝(類似于jq),這是一個 yaml 感知工具,并且可能是一個用于決議 yaml 的強大工具。
yq e '.metadata.name' deployment.yaml
nginx-deployment
使用 awk :
awk -v FS="[: ]" '/name:/{print $NF;exit}' deployment.yaml
nginx-deployment
uj5u.com熱心網友回復:
與sed. 找到第一行name,洗掉之前的所有內容: ,然后退出sed。
sed -n '/name/{ s/.*: //; p; q}' deployment.yaml
輸出:
nginx-部署
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/344192.html
標籤:linux 猛击 Kubernetes
