Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从LINUX中特定目录下的文件中查找特定字符串_Linux_Bash_Shell_Unix_Script - Fatal编程技术网

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

从LINUX中特定目录下的文件中查找特定字符串,linux,bash,shell,unix,script,Linux,Bash,Shell,Unix,Script,我试图从特定目录中获取包含字符串的特定文件 假设我想从扩展名为“*.BP”的目录中搜索关键字“AAA”,那么相同的脚本是什么 我试过这个: find $T24_HOME -type d -name '*.BP' | xargs -I % grep -l 'searchPattern' % 但是它不显示文件。find命令的输出是目录列表。不能在目录上运行grep-l,grep希望搜索文件(除非指定-r,在这种情况下,它将递归检查目录中的所有文件和所有子目录) 另外,find具有-exec,因此无

我试图从特定目录中获取包含字符串的特定文件

假设我想从扩展名为“*.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
,但会在一次运行中处理多个目录。

如果只提供目录名,您希望
grep
如何匹配文件内容?很有可能没有扩展名为
.BP
的目录,如果有,它仍然没有匹配的内容。