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 :打印数据