[英]jq dividing a single string value into two
[
{
"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"
}
]
我想以以下格式产生输出:
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
”是一个键,但是我想分开两个信息,分别用制表符分隔。 这个怎么做?
这是我的jq命令来解析文件:
cat input.json | jq -r '.[] | "\(.host),\(.ip),\(.info)"' > result.txt
我认为info
值由四个空格分隔,而不是由制表符分隔,因为JSON中不允许使用原始制表符,并且当输入中包含无效字符时,jq会引发错误。 如果我没看错,此命令应执行您想要的操作
jq -r '.[] | (.info | split(" ")[0:2] | join(",")) as $info | "\(.host),\(.ip),\($info)"' input.json > result.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.