如何使用ack
来搜索包含以下内容的文件,例如,
- 猫
- 狗
- 老鼠
文件中的任何地方?每个短语发生在文件中至少出现一次。
这有点像在线搜索引擎的行为。
奖金:
- 我们也可以对这些单独的短语使用正则表达式吗?
- 或者也许声明一个短语至少必须出现多少次?
答案1
@kirkbauer 建议
ack phrase2 `ack -l phrase1`
这确实有效。我更喜欢使用语法$()
而不是 ``` ` 语法
ack phrase2 $(ack -l phrase1)
随着 ack 2.0 的发布,您可以获得-x
这样的开关:
ack -l phrase1 | ack -x phrase2
告诉-x
ack 从 STDIN 获取要读取的文件列表。
答案2
这应该可以解决问题:执行第一次确认,获取文件列表,寻找第二组文件。
ack phrase2 `ack -l phrase1`