Linux-grep 命令和find 命令 (6)

grep与find区别:

grep:查找指定目录下过滤文本文件中行数据

find:查找指定目录下文件 

grep使用

格式:   grep "text"   *  [选项]

选项:

  • -A num, --after-context=num: 在结果中同时输出匹配行之后的num行
  • -B num, --before-context=num: 在结果中同时输出匹配行之前的num行,有时候我们需要显示几行上下文。
  • -i, --ignore-case: 忽略大小写
  • -n, --line-number: 显示行号
  • -R, -r, --recursive: 递归搜索子目录
  • -v, --invert-match: 输出没有匹配的行
  • -w :只显示全字符合的列,例如搜索"CONFIG_DM9000",就不会出现"CONFIG_DM9000_BASE"字段
  • -x  :只显示全列符合的列

实例:

grep "33F80000" * -nR                //递归地查找当前目录下所有文件中带"33F80000"行的数据,并显示出来

如下图所示:

grep "-pie" * -nR            //递归查找当前目录下所有文件,带有"-pie"一行的代码

如果想递归查找该目录下指定文件名称的内容,用--include:

grep  "config"  . -R --include=*config        // --include表示只在后缀名config文件文件名里找
 grep  "config"  . -R --include=*{config,.c}   //只在后缀名config 和*.c文件名中寻找"config"内容

如果想搜索某个不指定文件名的内容时,用-exclude:

grep  "config"  . -R --exclude=*{config,.c}        //递归寻找config字段,并排除掉config和*.c后缀名的文件

也可以使用ag命令 ,输入的字数更短.比如:  ag  "-pie"

find使用

格式:    find   [选项]    text   

常用选项:

-name  : 查找文件名

实例:

 find  -name   Makefile                        //查找当前目录下Makefile文件
 find /work  -name  start.c                   //查找指定目录/work/下start.c文件
 find  -name   boot*                          //查找当前目录下带boot开头的所有文件(就能找到boot.c,boot.o,boot.bin等)
 find  -name   *boot                          //查找当前目录下名字中带有boot的所有文件 ,*:表示通配符,*boot就是通配所有包含boot的内容
 find -name   *.c                             //查找当前目录下所有.c文件 
find ./ -print                   // -print :打印数据

  

原文地址:https://www.cnblogs.com/lifexy/p/7160677.html