Bash搜索包含在布尔表达式中组合的一些键的文件

时间:2018-04-07 00:59:08

标签: bash search logical-operators boolean-expression

鉴于目录中有许多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有很大不同,在它的语法中,似乎对我不起作用(可能我没有足够的时间去做它)。

实现此功能的最佳选择是什么,以及如何转换为如此直观的语法?

0 个答案:

没有答案