You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jq单行命令实现数组与字符串的不区分大小写子串匹配?

解决方案

可以用这行简洁的jq单行命令实现需求:

jq --arg x "ThiS.FIle.is.HeRe" 'any(.[]; ascii_downcase | $x | ascii_downcase | contains(.))' /some/file.json

命令说明

  • --arg x "ThiS.FIle.is.HeRe":将目标字符串传入jq的运行环境
  • any(.[]; ...):遍历数组内所有元素,只要有一个元素满足后续条件就返回true,全部不满足则返回false
  • ascii_downcase:把数组元素和目标字符串统一转为小写,实现不区分大小写的匹配逻辑
  • contains(.):判断转小写后的目标字符串是否包含转小写后的当前数组元素(对应“数组元素是目标字符串的子串”的需求)

如果需要输出不带引号的纯布尔值,加上-r参数即可:

jq -r --arg x "ThiS.FIle.is.HeRe" 'any(.[]; ascii_downcase | $x | ascii_downcase | contains(.))' /some/file.json

内容的提问来源于stack exchange,提问作者Gregor Isack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:32:34