¿Cómo eliminar un bloque secundario de YML en el script de shell?

Estoy tratando de comparar dosyml archivos y eliminar un bloque en función de algunas condiciones utilizando script de shell. Estoy usando estoYML analizadorhttps://gist.github.com/pkuczynski/8665367 para la comparación deyml archivos Pero realmente estoy luchando mucho por quitarles el bloqueo. Por ejemplo,

tool:
  image: tool.xxx.com/platform/app:dev
  log_driver: syslog
  restart: always
  ports:
    - "54325:80"
    - "543325:80"
  volume:
    - "a:b"

tool1:
  image: tool1.xxx.com/platform/app:dev
  log_driver: syslog
  restart: always
  ports:
    - "54325:80"
    - "543325:80"
  volume:
    - "a:b"

Cómo quitar el bloque de puertos debajotool y que hará una salida similar a,

tool:
  image: tool.xxx.com/platform/app:dev
  log_driver: syslog
  restart: always
  volume:
    - "a:b"

tool1:
  image: tool1.xxx.com/platform/app:dev
  log_driver: syslog
  restart: always
  ports:
    - "54325:80"
    - "543325:80"
  volume:
    - "a:b"

Probé algunas cosas usando awk y sed, pero no sé exactamente porque contiene algunas condiciones complejas que involucran múltiples líneas.

Cualquier ayuda o sugerencia sobre esto sería de gran ayuda y muy apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta