find指令的grep指令都可以在指定的路径或者指定的文件里面查找指定的内容;
find和grep的区别:

  • find是在指定的路径或者目录里面查找指定的文件。
  • grep是在指定的文件里面查找指定的内容
    find:
find  【path】 【option】 filename

find的可以在【path】路径里面查找指定的文件名。

例如:

在find文件中通过grep查找内容 find grep_正则表达式


常用的选项:

-name :可以根据文件的名称来查找
-size :可以根据文件的大小来查找
-user :根据文件的拥有者来查找
-empty :在指定的路径下查找为空的文件和目录

find—-exec选项:
在需要将find指令查找出来的文件目录进行操作的时候需要用到-exec选项。
例如,将find查找出来的内容进行输出:

find . -name  filename -exec ls -l {} \;

在find文件中通过grep查找内容 find grep_在find文件中通过grep查找内容_02


注:

find指令将在指定路径查找到的内容作为ls的输入,使用-exec选项替换。在-exec选项的后面是多find查找到的内容的操作命令,在命令的后面是{}—–将find的内容是输出,在使用-exec选项的命令最后面必须使用;作为结尾,但是在linux里面;有很多的含义,所以需要在;前面加上一个\;

grep:
grep指令是在指定的文件里面查找指定的内容。

grep 【option】【目标字符串】 filename

常用选项:

-c:只输出匹配行的计数。

-i:不区分大小写

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

在find文件中通过grep查找内容 find grep_文件名_03

含有正则表达式的grep:

  • \: 忽略正则表达式中特殊字符的原有含义。
  • ^:匹配正则表达式的开始行。
  • $: 匹配正则表达式的结束行。
  • \<:从匹配正则表达 式的行开始。  
  • >:到匹配正则表达式的行结束。
  • [ ]:单个字符,如[A]即A符合要求 。 
  • [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
  • .:所有的单个字符。
  • *:有字符,长度可以为0。
    例如:
    grep -n ‘[^h]hehe’ filename //在filname里面查找hehe为后缀的内容
    grep -n [0-9] filename //在filename里面查找含有数字的内容
    grep -n ‘^the’ filename //在filename里面查找the开头的内容
    grep -n ‘$.’ filename //在filename里面查找.结尾的内容

find和grep结合使用

要是find指令和grep指令结合使用,需要使用感到命令,管道命令可以将前面的指令的输出内容作为后面的指令的输入,如果使用定的指令将文件的路径找到,然后使用grep命令在指定的文件里面查找相应的木白哦内容。

例如:

使用命令将指定文件的里面的指定内容输出:

find . -name "heap.h" | xargs grep -n 'heap'

在find文件中通过grep查找内容 find grep_正则表达式_04

注:这里的xargs是替换工具,可以将标准输入转换成命令行参数。