如何使用'tr'仅查找和替换---

时间:2019-09-03 08:49:52

标签: bash tr kustomize

因此,我有命令(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}' '#',但这仍然无济于事。我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

tr仅翻译单个字符(如果指定,则将其删除)。

您需要使用的是“流编辑器” sed,它可以替换字符组:

sed 's/---/###/g'