gpt4 book ai didi

jq - 解析多个 json 文件并输出针对具有关联文件名的正则表达式的匹配/命中

转载 作者:行者123 更新时间:2023-12-04 17:08:03 28 4
gpt4 key购买 nike

目前,通过管道传输到 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)' 
请求您帮助调整命令以打印 $filename。谢谢!

最佳答案

input_filename计算为当前正在读取的文件的输入文件名(打开后)。对于 STDIN,它的计算结果为 "<stdin>" :

jq  'input_filename, input_filename' <<< 1
"<stdin>"
"<stdin>"
它与 -n 命令行选项一起使用,但仅在 input 之后或 inputs函数被调用:
jq -n 'input_filename, (input | input_filename)' <<< 1
null
"<stdin>"

关于jq - 解析多个 json 文件并输出针对具有关联文件名的正则表达式的匹配/命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70091006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com