【发布时间】:2021-01-27 23:37:46
【问题描述】:
在一个文件中,我想在带有键“sys-mgmt-agent”的特定段之后附加一个字符串。 这是文件内容:
sys-mgmt-agent:
networks:
edgex-network:
aliases:
- edgex-sys-mgmt-agent
depends_on:
- redis
volumes:
- /proc/uptime:/proc/uptime
- /var/log/auth.log:/var/log/auth.log
- ${HOST_SECURITY_FILE_PATH}edgex-redis:/tmp/edgex/secrets/edgex-redis:z
edge-orchestrator:
networks:
edgex-network:
aliases:
- edgex-sys-mgmt-agent
depends_on:
- redis
volumes:
- /proc/uptime:/proc/uptime
- /var/log/auth.log:/var/log/auth.log
- ${HOST_SECURITY_FILE_PATH}edgex-redis:/tmp/edgex/secrets/edgex-redis:z
这是预期的结果:
sys-mgmt-agent:
networks:
edgex-network:
aliases:
- edgex-sys-mgmt-agent
depends_on:
- redis
volumes:
- /proc/uptime:/proc/uptime
- /var/log/auth.log:/var/log/auth.log
- ${HOST_SECURITY_FILE_PATH}edgex-redis:/tmp/edgex/secrets/edgex-redis:z
MY STRING
edge-orchestrator:
networks:
edgex-network:
aliases:
- edgex-sys-mgmt-agent
depends_on:
- redis
volumes:
- /proc/uptime:/proc/uptime
- /var/log/auth.log:/var/log/auth.log
- ${HOST_SECURITY_FILE_PATH}edgex-redis:/tmp/edgex/secrets/edgex-redis:z
我使用 sed 命令找到了该段:sed -n '/sys-mgmt-agent:/,/^\s*$/p' <file>,但我无法附加我的字符串。
【问题讨论】:
-
恕我直言,专家总是建议使用
yq之类的工具,它可以更好地理解 yaml 文件。您的系统中是否有yq或者您可以安装它?根据您的回复,人们可以在此处为您提供指导。 -
不,我无法在远程服务器上安装软件。