我需要转换这种输出:
samaccountname: displayname
samaccountname2: displayname2
这样的事情:
{
"samaccountname": "displayname",
"samaccountname2": "displayname2"
}
你可以帮我一把吗?
谢谢!
顺便说一句,这是LDAP搜索查询的输出,因此需要从pipe / stdin接收数据。
谢谢!
答案 0 :(得分:1)
如果你可以根据第一个冒号进行解析,这样就可以了:
jq -Rn '[inputs | capture("(?<key>[^:]*): *(?<value>.*)")] | from_entries'
您可能需要添加过滤器以进行进一步修剪。 (如果有帮助,jq有ltrimstr
和rtrimstr
。)
或(除了修剪):
jq -Rn '[inputs | index(":") as $i | {key: .[:$i], value: .[1+$i:]}] | from_entries'
ldapsearch有一个选项:
-B
不要禁止显示非ASCII值。