bash - 附加到配置文件
问题描述
我正在创建一个脚本来更新应用程序中的主机,每个主机的配置文件如下所示。该脚本正确生成主机,但我需要在每个 } 后面加上逗号,除了最后一个主机。
我尝试了很多东西,但最接近的是将主机内容放在一行上并针对它运行 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",
}
解决方案
你可以这样做:
sed '$q; s/^}$/},/' <in_file >out_file
上面的 sed 命令的工作原理如下:首先检查你是否已经到了最后一行,如果是就退出。否则,它将检查该行中唯一的字符是否为}
,如果是,则将其替换为},
.
推荐阅读
- xpages - 计算我的 xp:inputText 控件的字符数
- python - 领导者和滞后者时间戳之间的 numpy 计算滞后
- typescript - 使用类验证器验证编号 18.2
- python - 如何通过 python 访问从站点发出的请求的结果?
- sql - 在sql server中按最新日期和更新值分组
- c++ - 我可以在另一个类中实例化一个对象吗?
- shell - 如何在 shell 脚本中剪切我的 grep 输出的所需部分
- html - 为什么textarea的宽度和高度比iframe大?
- powershell - Powershell 检查是否存在 XML 属性
- ios - IB_DESIGNABLE 不在情节提要中呈现