从LINUX中特定目录下的文件中查找特定字符串
我试图从特定目录中获取包含字符串的特定文件 假设我想从扩展名为“*.BP”的目录中搜索关键字“AAA”,那么相同的脚本是什么 我试过这个:从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,因此无
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
的目录,如果有,它仍然没有匹配的内容。