리눅스 sed YAML 파일 다루기

1 개요[ | ]

리눅스 sed YAML 파일 다루기

2 값 변경[ | ]

yaml
Copy
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    env:
    - name: DEMO_GREETING
      value: "Hello from the environment"
    - name: DEMO_FAREWELL
      value: "Such a sweet sorrow"
Console
Copy
tester@localhost:~$ cat nginx.yaml | sed ':a;N;$!ba;s/\(DEMO_GREETING[^"]\+\)"[^"]\+"/\1"lorem ipsum"/'
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    env:
    - name: DEMO_GREETING
      value: "lorem ipsum"
    - name: DEMO_FAREWELL
      value: "Such a sweet sorrow"

3 블럭 삭제[ | ]

yaml
Copy
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    env:
    - name: DEMO_GREETING
      value: "Hello from the environment"
    - name: DEMO_FAREWELL
      value: "Such a sweet sorrow"
Console
Copy
tester@localhost:~$ cat nginx.yaml | sed ':a;N;$!ba;s/\s\+- name: DEMO_GREETING[^:]\+:[^\n]\+//'
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    env:
    - name: DEMO_FAREWELL
      value: "Such a sweet sorrow"
yaml
Copy
apiVersion: v1
kind: Pod
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: task-pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage
Console
Copy
$ cat task-pv-pod.yaml | sed ':a;N;$!ba;s/\s\+volumes:.*claimName: task-pv-claim//'
apiVersion: v1
kind: Pod
metadata:
  name: task-pv-pod
spec:
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage

4 같이 보기[ | ]