从 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 -l
,grep
想要搜索文件(除非你指定 -r
在这种情况下它将检查目录中的所有文件和所有递归子目录)。
此外,find
有 -exec
,所以不需要 运行 xargs
。
find "$T24_HOME" -type d -name '*.BP' -exec grep -rl 'searchPattern' {} \;
使用 +
而不是 \;
(如果支持)将 运行 更快,因为不会为每个目录调用 grep
,但会处理许多目录一个 运行.
我正在尝试从特定目录中获取包含字符串的特定文件。
假设我想从扩展名为“*.BP”的目录中搜索关键字“AAA”,相同的等效脚本是什么。
我试过这个:
find $T24_HOME -type d -name '*.BP' | xargs -I % grep -l 'searchPattern' %
但它不显示文件。
find
命令的输出是一个目录列表。你不能在目录上 运行 grep -l
,grep
想要搜索文件(除非你指定 -r
在这种情况下它将检查目录中的所有文件和所有递归子目录)。
此外,find
有 -exec
,所以不需要 运行 xargs
。
find "$T24_HOME" -type d -name '*.BP' -exec grep -rl 'searchPattern' {} \;
使用 +
而不是 \;
(如果支持)将 运行 更快,因为不会为每个目录调用 grep
,但会处理许多目录一个 运行.