我有多个具有一个人的年龄的JSON文件,我想使用正则表达式匹配特定的年龄,但是,我什至不能匹配文件中的单个整数。
我可以使用以下jq
选择年龄,
jq -r .details.Age
我可以使用以下Name
来匹配jq
,
jq -r 'select(.details.Name | match("r.*"))'
但是当我尝试将test
或match
与Age
一起使用时,出现以下错误,
jq -r 'select(.details.Age | match(32))'
jq: error (at <stdin>:6): number not a string or array
这是代码
{
"details": {
"Age": 32,
"Name": "reverent"
}
}
我希望能够使用Age
来匹配jq
,
jq -r 'select(.details.Age | match(\d))'
答案 0 :(得分:1)
您的.Age值是一个数字,但是正则表达式可用于字符串,因此,如果您真的想使用正则表达式,则必须将数字转换为字符串。可以使用tostring
完成,但是请记住,JSON数字的tostring
表示可能并不总是您认为的那样。
–––
p.s。那应该是match("\\d")