【问题标题】:search multiple keywords recursively in a folder path在文件夹路径中递归搜索多个关键字
【发布时间】:2015-09-28 06:54:45
【问题描述】:

我有一个文本文件,其中包含多个关键字,例如每行一个关键字

  • 键1
  • 键2
  • 关键3
  • 钥匙4

然后我有一组包含许多文件的子目录。我需要一个等效的 linux grep 或 sed 命令,它将在所有子目录中递归搜索所有关键字并为我打印文件名。

我可以做find . | xargs grep "key1",但我必须为每个关键字做。我需要一个适用于所有 Key1、Key2、Key3 等的命令。

请帮助解决这个问题。

【问题讨论】:

  • 您是否完成了man grep 并查看了-f 选项?

标签: bash awk sed grep


【解决方案1】:

应该这样做:

grep -rlf file .

-r 用于递归

-l 只打印包含匹配项的文件名

-f 从文件中获取模式,每行一个。

【讨论】:

  • 感谢这确实有效。有什么办法可以打印哪个文件与哪个输入模式匹配?
【解决方案2】:

两个关键字的AND模式

find . -type f -exec grep -q word1 {} \; -exec grep -l word2 {} \;

3 个关键字的 AND 模式

find . -type f -exec grep -q word1 {} \; -exec grep -q word2 {} \; -exec grep -l word3 {} \;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2022-12-14
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多