从 LINUX 中特定目录下的文件中查找特定字符串

Find a particular string from files under specific directory in LINUX

我正在尝试从特定目录中获取包含字符串的特定文件。

假设我想从扩展名为“*.BP”的目录中搜索关键字“AAA”,相同的等效脚本是什么。

我试过这个:

find $T24_HOME -type d -name '*.BP' | xargs -I % grep -l 'searchPattern' %

但它不显示文件。

find 命令的输出是一个目录列表。你不能在目录上 运行 grep -lgrep 想要搜索文件(除非你指定 -r 在这种情况下它将检查目录中的所有文件和所有递归子目录)。

此外,find-exec,所以不需要 运行 xargs

find "$T24_HOME" -type d -name '*.BP' -exec grep -rl 'searchPattern' {} \;

使用 + 而不是 \;(如果支持)将 运行 更快,因为不会为每个目录调用 grep,但会处理许多目录一个 运行.