鉴于目录中有许多JSON文件,我需要在标有"keyword:"
的行中提取包含与布尔查询匹配的单词组合的名称。
例如:
文件01
包含以下行:
...
"keyword": "Alabama", "Washington"
...
文件02
包含以下行:
...
"keyword": "Washington", "Pennsylvania"
...
搜索应该如何运作:
$ query "Washington"
01
02
$ query "Washington & !Alabama"
02
$ query "Alabama | Pennsylvania"
01
02
等等,对于单个键的任何布尔组合,比如说
query "(Alabama & !California) | Maine"
grep "keyword" <directory>
将提取感兴趣的行,其余的可以从那里流水线化,但逻辑运算符的grep
实现与布尔表达式和awk
有很大不同,在它的语法中,似乎对我不起作用(可能我没有足够的时间去做它)。
实现此功能的最佳选择是什么,以及如何转换为如此直观的语法?