我有几个 pdf、epub、mobi 文件。我想找到所有包含以下内容的文件:
- 全有或全无
- 普遍的
- 灾难化
我的意思是所有单词都必须出现在文件中。它们不需要位于同一行、同一段落或同一页中。
我也可能使用有空格的搜索词。
目前我使用命令
rga 'all-or-nothing' --ignore-case --files-with-matches \
| xargs -I{} rga 'pervasive' --ignore-case --files-with-matches "{}" \
| xargs -I{} rga 'catastrophizing' --ignore-case --files-with-matches "{}"
它有几个问题:
- xargs:不匹配的单引号;默认情况下,引号对于 xargs 是特殊的,除非您使用 -0 选项
- 多次运行时,此命令不会对同一文件给出相同的结果。
这里可能有更好的解决方案。
更新1:
到目前为止我发现的是:
comm -12 <(rga 'A1' --ignore-case --files-with-matches | sort) \
<(rga 'A2' --ignore-case --files-with-matches | sort) \
| comm -12 - <(rga 'A3' --ignore-case --files-with-matches | sort) \
| comm -12 - <(rga 'A4' --ignore-case --files-with-matches | sort)
仍在寻找一种性能更高的解决方案,因为该解决方案运行了rga
四次。