如何使用 'tr' 仅查找和替换 ---
How to use 'tr' to find and replace only ---
所以,我有一个命令 (kustomize build
) 的输出,我想将输出中的 ---
转换为 ###
。例如:
$ kustomize build
apiVersion: extensions/v1
kind: Ingress
metadata:
labels:
app: hello-world
---
apiVersion: v1
kind: Service
metadata:
name: hello-world
spec:
ports:
- name: service
port: 443
targetPort: 8443
selector:
app: hello-world
type: NodePort
我想将其更改为:
apiVersion: extensions/v1
kind: Ingress
metadata:
labels:
app: hello-world
###
apiVersion: v1
kind: Service
metadata:
name: hello-world
spec:
ports:
- name: service
port: 443
targetPort: 8443
selector:
app: hello-world
type: NodePort
我尝试了 $ kustomize build | tr '\---' '#'
,但它甚至将单个 '-'
的每个实例都替换为 '#'
。我什至尝试了 tr '[-]{3}' '#'
但即使这样也无济于事。我该怎么做呢?
tr
仅翻译单个字符(如果指定,则删除它们)。
你需要使用的是 "stream editor" sed
可以替换字符组:
sed 's/---/###/g'
所以,我有一个命令 (kustomize build
) 的输出,我想将输出中的 ---
转换为 ###
。例如:
$ kustomize build
apiVersion: extensions/v1
kind: Ingress
metadata:
labels:
app: hello-world
---
apiVersion: v1
kind: Service
metadata:
name: hello-world
spec:
ports:
- name: service
port: 443
targetPort: 8443
selector:
app: hello-world
type: NodePort
我想将其更改为:
apiVersion: extensions/v1
kind: Ingress
metadata:
labels:
app: hello-world
###
apiVersion: v1
kind: Service
metadata:
name: hello-world
spec:
ports:
- name: service
port: 443
targetPort: 8443
selector:
app: hello-world
type: NodePort
我尝试了 $ kustomize build | tr '\---' '#'
,但它甚至将单个 '-'
的每个实例都替换为 '#'
。我什至尝试了 tr '[-]{3}' '#'
但即使这样也无济于事。我该怎么做呢?
tr
仅翻译单个字符(如果指定,则删除它们)。
你需要使用的是 "stream editor" sed
可以替换字符组:
sed 's/---/###/g'