首页 > 解决方案 > 附加到配置文件

问题描述

我正在创建一个脚本来更新应用程序中的主机,每个主机的配置文件如下所示。该脚本正确生成主机,但我需要在每个 } 后面加上逗号,除了最后一个主机。

我尝试了很多东西,但最接近的是将主机内容放在一行上并针对它运行 IFS 语句。我也不确定如何最好地解决这个问题,有人可以建议吗?

{
"cmd": "ssh user@webserver",
"inTerminal": "new",
"name": "webserver",
"theme": "basic",
"title": "Webserver",
}

我正在努力实现的示例

{
"cmd": "ssh user@webserver",
"inTerminal": "new",
"name": "webserver",
"theme": "basic",
"title": "Webserver",
},
{
"cmd": "ssh user@db",
"inTerminal": "new",
"name": "db server",
"theme": "basic",
"title": "db",
},
{
"cmd": "ssh user@mail",
"inTerminal": "new",
"name": "mail server",
"theme": "basic",
"title": "mail server",
}

标签: bash

解决方案


你可以这样做:

sed '$q; s/^}$/},/' <in_file >out_file

上面的 sed 命令的工作原理如下:首先检查你是否已经到了最后一行,如果是就退出。否则,它将检查该行中唯一的字符是否为},如果是,则将其替换为},.


推荐阅读