搜索命令Grep

刘超 25天前 ⋅ 4226 阅读   编辑

  基于centos7

一、命令

  grep 

二、参数

  -a :将 binary 文件以 text 文件的方式搜寻数据
  -c :计算找到 '搜寻字符串' 的次数
  -i :忽略大小写的不同,所以大小写视为相同
  -n :顺便输出行号
  -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
  -w : 启用精确匹配
  -C:指定上下文显示行数
  -B :指定上文显示行数
  -A:指定下文显示行数
  --include:查找指定类型的文件
  --exclude-dir:排除某目录
  --exclude:排除某类型文件,help中说“--exclude”可以忽略文件和目录,可是实际测试中发现并不能忽略目录。所以,要排除目录,还得用“--exclude-dir”

三、示例

  1、检索指定类型的文件内容

grep -rni "文件内容" --include \*.html  .

2、排除logs目录

grep -rni "hadoop" --exclude-dir logs\* --exclude=\*.log .

3、排除.log文件

grep -rni "hadoop" --exclude-dir logs\* --exclude=\*.log .

4、排除html,js,css,JPG,下载文件

grep -rni "debug" --exclude=\*.{html,js,css,JPG,下载}  .

说明:

CentOS 7.5.1804中, --exclude=\*.{html} 这样写不生效,不知道为啥,必须有两个以上才生效;如果要过滤一个,去掉{} 这样写--exclude=\*.html

5、精确查找test.txt文件

grep -rniw '1.10.10.1' test.txt 

6、查看grep版本的方法是

grep -V

7、显示上下文

grep -C 5 foo file  显示file文件中匹配foo字串那行以及上下5行

grep -B 5 foo file  显示foo及前5行

grep -A 5 foo file  显示foo及后5行

 


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: