作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否可以添加使此输出成为有效 JSON 字符串所需的附加格式。为此,我需要在开头一个字符,除最后一行外的每一行一个字符,然后是最后一个字符。
我目前有这个;
$ sudo docker ps --format "{ \"{{.ID}}\" : \"{{.Names}}\"}"
{ "85c4c597bef9" : "addon_a0d7b954_nodered"}
{ "ec3c55af0497" : "addon_a0d7b954_appdaemon"}
{ "63e3081fbe42" : "addon_a0d7b954_logviewer"}
最佳答案
问题在于您指定了一个模板,但该模板单独应用于您的每个容器,并且每个模板结果都在新行中呈现。您的模板不适用于项目列表,而是应用于单个项目,结果的输出方式(行的连接方式)不在您的控制范围内。
但是您可以使用 linux 命令实现您想要的。
此代码演示了您的模板是如何执行的:
src := "{ \"{{.ID}}\" : \"{{.Names}}\"}"
t := template.Must(template.New("").Parse(src))
ps := []map[string]string{
{"ID": "85c4c597bef9", "Names": "addon_a0d7b954_nodered"},
{"ID": "ec3c55af0497", "Names": "addon_a0d7b954_appdaemon"},
{"ID": "63e3081fbe42", "Names": "addon_a0d7b954_logviewer"},
}
for _, p := range ps {
if err := t.Execute(os.Stdout, p); err != nil {
panic(err)
}
fmt.Println()
}
{ "85c4c597bef9" : "addon_a0d7b954_nodered"}
{ "ec3c55af0497" : "addon_a0d7b954_appdaemon"}
{ "63e3081fbe42" : "addon_a0d7b954_logviewer"}
paste
用逗号连接这些行,如下所示:
docker ps --format "{ \"{{.ID}}\" : \"{{.Names}}\"}" |paste -sd','
[
并附加一个
]
所以它变成了一个有效的 JSON 数组。
echo something | (command && cat)
echo
引起的换行符,您可以使用
echo -n
.
]
到
docker
的输出,然后到单个
[
的输出.
echo ] | (docker ps --format "{ \"{{.ID}}\" : \"{{.Names}}\"}" | paste -sd',' && cat) | (echo [ && cat)
[
{ "85c4c597bef9" : "addon_a0d7b954_nodered"},{ "ec3c55af0497" : "addon_a0d7b954_appdaemon"},{ "63e3081fbe42" : "addon_a0d7b954_logviewer"}
]
关于json - 将 docker ps 输出格式化为 JSON 的 Golang 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61586686/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!