리눅스 sed 여러 줄로 치환 + 들여쓰기 적용

1 개요[ | ]

리눅스 sed 여러 줄로 치환 + 들여쓰기 적용

2 실습 1[ | ]

root@localhost:~# cat ui.properties 
color.good=purple
color.bad=yellow
allow.textmode=true
root@localhost:~# cat game-data.yaml 
apiVersion: v1
data:
  ui.properties: |
    {{properties}}
kind: ConfigMap
metadata:
  name: game-data
root@localhost:~# ESCAPED=$(cat ui.properties | sed ':a;N;$!ba;s|\n|\\n    |g' | sed 's|/|\\/|g' )
root@localhost:~# sed "s/{{properties}}/$ESCAPED/" game-data.yaml 
apiVersion: v1
data:
  ui.properties: |
    color.good=purple
    color.bad=yellow
    allow.textmode=true
kind: ConfigMap
metadata:
  name: game-data

3 실습 2[ | ]

root@localhost:~# cat mykey.pem 
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDTDhZpOuKlU5rBMhs7bF9TObe1wSCNsTJ/x3QmaU0ZPzjMXyNg
OfUbMcV58FZMxhDa/02L4muH6BrM9LDfwdBeZQnKEtCLo1zAlBvXTBFmUmUHaJB3
Bcwfu7Yp9e13Ia/abB5fEB8UR0GYrqgs2LLjdmb/RE4=
-----END RSA PRIVATE KEY-----
root@localhost:~# cat game-data.yaml 
apiVersion: v1
data:
  mykey.pem: |
    {{KEY}}
kind: ConfigMap
metadata:
  name: game-data
root@localhost:~# ESCAPED=$(cat mykey.pem| sed ':a;N;$!ba;s|\n|\\n    |g' | sed 's|/|\\/|g' )
root@localhost:~# sed "s/{{KEY}}/$ESCAPED/g" game-data.yaml 
apiVersion: v1
data:
  mykey.pem: |
    -----BEGIN RSA PRIVATE KEY-----
    MIICXAIBAAKBgQDTDhZpOuKlU5rBMhs7bF9TObe1wSCNsTJ/x3QmaU0ZPzjMXyNg
    OfUbMcV58FZMxhDa/02L4muH6BrM9LDfwdBeZQnKEtCLo1zAlBvXTBFmUmUHaJB3
    Bcwfu7Yp9e13Ia/abB5fEB8UR0GYrqgs2LLjdmb/RE4=
    -----END RSA PRIVATE KEY-----
kind: ConfigMap
metadata:
  name: game-data

4 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}