目前,通过管道传输到 jq 的 cat 命令帮助我解析工作目录中的多个 JSON 文件,并根据与所有文件中可用的电子邮件 ID 匹配的正则表达式模式进行筛选。但是,我热衷于识别正则表达式模式被命中/匹配的文件名
cat *.json | jq '. as $data | [path(..| select(scalars and (tostring | test("^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$", "ixn")))) ] | map({ (.|join(".")): (. as $path | .=$data | getpath($path)) }) | reduce .[] as $item ({}; . * $item)'
Run Code Online (Sandbox Code Playgroud)
请求您帮助调整打印 $filename 的命令。谢谢!