如何确认包含两个或更多短语/单词的文件?

如何确认包含两个或更多短语/单词的文件?

如何使用ack来搜索包含以下内容的文件,例如,

  1. 老鼠

文件中的任何地方?每个短语发生在文件中至少出现一次。

这有点像在线搜索引擎的行为。

奖金:

  1. 我们也可以对这些单独的短语使用正则表达式吗?
  2. 或者也许声明一个短语至少必须出现多少次?

答案1

@kirkbauer 建议

ack phrase2 `ack -l phrase1`

这确实有效。我更喜欢使用语法$()而不是 ``` ` 语法

ack phrase2 $(ack -l phrase1)

随着 ack 2.0 的发布,您可以获得-x这样的开关:

ack -l phrase1 | ack -x phrase2

告诉-xack 从 STDIN 获取要读取的文件列表。

答案2

这应该可以解决问题:执行第一次确认,获取文件列表,寻找第二组文件。

ack phrase2 `ack -l phrase1`

相关内容