我使用jq和aws cli来打印实例。 例如: 检索实例列表
app.ActiveDocument.RunAutoMacro(WdAutoMacros.wdAutoOpen);
Jq打印实例id:
aws ec2 describe-instances --filters "Name=tag:bld_env,Values=test" --output json > all-inst.json
Jq的输出:
jq -r '.Reservations[].Instances[].InstanceId' all-inst.json
我想将它们打印成这样的一行:
i-09e0d805cc
i-091a61038
i-07d3022
i-0428ac7c4c
i-970dc5c4d99
i-014c4ea
i-0ac924df
i-031f6 and so on..
答案 0 :(得分:3)
角括号字符真的存在吗?否则你只需tr '\n' ','
。
答案 1 :(得分:0)
以下是一些仅限jq的方法。
通常最简单的就是加入"这些行(例如使用join(",")
)。这通常使用-r
命令行选项完成。
如果这样做不切实际或效率低下,可以使用--join
(或-j
)命令行选项。以下是使用此方法的两个插图。在两个示例中,输出都不包含换行符。
jq -n -j 'range(0;5) | "\(.),"'
oneline.jq:
def oneline(f):
foreach f as $i (null;
if . == null then "\($i)" else ",\($i)" end;
.);
oneline( range(0;5) )
调用:jq -n -j -f oneline.jq
输出:
0,1,2,3,4