Как использовать 'tr' только для поиска и замены ---

Итак, у меня есть вывод команды (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 ответ

Решение

tr переводит только отдельные символы (и удаляет их, если вы это укажете).

Что вам нужно использовать, так это "редактор потока" sed который может заменять группы символов:

sed 's/---/###/g'
Другие вопросы по тегам