如何查找包含指定内容的JSON文件并输出对应文件名
实现方法
方法1:使用jq(推荐,准确解析JSON结构)
jq是专门处理JSON的命令行工具,会直接解析JSON结构做判断,不会受空格、换行、其他位置的同名字符串干扰,准确率最高:
- 先安装jq:
- Debian/Ubuntu:
sudo apt install jq - CentOS/RHEL:
sudo dnf install jq - macOS(Homebrew):
brew install jq
- Debian/Ubuntu:
- 执行搜索命令:
find 你的JSON目录路径 -name "*.json" -exec jq -e '.room.label == "Bedroom"' {} \; -print
命令说明:
-e参数让jq根据判断结果返回对应的退出状态码,只有当.room.label值严格等于Bedroom时才会打印对应文件名。
方法2:使用grep(快速简便)
如果你不需要严格校验JSON结构,只是匹配存在对应字符串的文件,直接用grep即可:
grep -rl '"label": "Bedroom"' 你的JSON目录路径 --include="*.json"
命令说明:
-r递归遍历目录,-l仅输出匹配成功的文件名,--include="*.json"限定只搜索JSON后缀的文件。
方法3:Windows PowerShell 实现
Windows系统可以直接用PowerShell命令完成:
Get-ChildItem -Path "你的JSON目录路径" -Filter *.json -Recurse | Select-String -Pattern '"label": "Bedroom"' | Select-Object -Unique Path
内容的提问来源于stack exchange,提问作者BreadX
相关产品推荐
相关产品推荐

