如何用jq提取JSON子数组前两元素并以短横线连接?
解决方案
你之前的命令方向有误,.[][]会把所有嵌套数组的元素扁平化输出,导致原本成对的元素被拆分开,无法直接关联。正确的思路是针对data数组里的每一个子数组单独处理,将每个子数组的前两个元素用-拼接。
最终可用命令
jq -r '.data[] | "\(.[0])-\(.[1])"' ./data.txt
命令细节解释
.data[]:遍历JSON中data数组下的每一个子数组"\(.[0])-\(.[1])":利用jq的字符串插值语法,把当前子数组的第1个元素(索引0)和第2个元素(索引1)用-连接成完整字符串-r:指定输出原始字符串(去掉JSON格式的引号)
执行后会直接输出你期望的结果:
2.16.1.0-2.16.1.255 2.16.3.0-2.16.3.255 2.16.6.0-2.16.7.255
内容的提问来源于stack exchange,提问作者KarlsD
相关产品推荐
相关产品推荐

