Linux查找和grep命令一起

我试图找到一个命令或创建一个可以完成这两个命令并列出输出的Linux脚本

find . -name '*bills*' -print

这会打印所有文件

./may/batch_bills_123.log
./april/batch_bills_456.log
..

从这个结果我想做一个字我grep现在手动做

grep 'put' ./may/batch_bill_123.log 

并得到

sftp > put oldnet_1234.lst

我希望能得到文件名和它的匹配。

./may/batch_bills_123.log   sftp > put oldnet_1234.lst
..
..
and so on... 

有任何想法吗?


您正在寻找gnu grep中的-H选项。

find . -name '*bills*' -exec grep -H "put" {} ;

这是解释

    -H, --with-filename
      Print the filename for each match.

现在问题更加清楚了,您可以在一个grep中完成此操作

grep -R --include "*bills*" "put" .

与相关的标志

   -R, -r, --recursive
          Read  all  files  under  each  directory,  recursively;  this is
          equivalent to the -d recurse option.
   --include=GLOB
          Search only files whose base name matches GLOB  (using  wildcard
          matching as described under --exclude).
链接地址: http://www.djcxy.com/p/12887.html

上一篇: Linux find and grep command together

下一篇: Negative matching using grep (match lines that do not contain foo)