Json jq将单个字符串值分成两个
我希望以以下格式生成输出:Json jq将单个字符串值分成两个,json,parsing,jq,text-parsing,string-parsing,Json,Parsing,Jq,Text Parsing,String Parsing,我希望以以下格式生成输出: [ { "host": "a.com", "ip": "1.2.2.3", "port": 8, "name":"xyz", "info":"part1 part2 part3 part4" }, { "host": "b.com", "ip": "2.5.0.4", "port": 3, "name":"xyz", "info":"part1 part2 part3 part4" }, {
[
{
"host": "a.com",
"ip": "1.2.2.3",
"port": 8,
"name":"xyz",
"info":"part1 part2 part3 part4"
},
{
"host": "b.com",
"ip": "2.5.0.4",
"port": 3,
"name":"xyz",
"info":"part1 part2 part3 part4"
},
{
"host": "c.com",
"ip": "9.17.6.7",
"port": 4,
"name":"xyz",
"info":"part1 part2 part3 part4"
}
]
问题是键“info
”是单个键,但我想将两条信息分开,分别用tab分隔。如何做到这一点
这是我解析文件的jq命令:
a.com,1.2.2.3,part1,part
b.com,2.5.0.4,part1,par2
c.com,9.17.6.7,part1,part2
我认为
info
值由四个空格分隔,而不是由制表符分隔,因为JSON中不允许使用原始制表符,当输入中存在无效字符时,jq会引发错误。如果我没有错的话,这个命令应该做你想做的
jq-r'.[]|(.info | split(“”[0:2]| join(“”))作为$info |“\(.host),\(.ip),\($info)”input.json>result.txt
cat input.json | jq -r '.[] | "\(.host),\(.ip),\(.info)"' > result.txt