加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则grep用法

发布时间:2020-12-14 06:33:57 所属栏目:百科 来源:网络整理
导读:语法:grep 选项 ‘word’ filename -c:打印符合要求的行数 -i:不区分大小写 -n:在输出符合要求的行的同时显示行号 -v:打印不符合要求的行 -A:后跟一个数字n,表示打印符合要求的行以及下面n行 -B:后跟一个数字n,表示打印符合要求的行以及上面n行 -C

语法:grep 选项 ‘word’ filename
-c:打印符合要求的行数
-i:不区分大小写
-n:在输出符合要求的行的同时显示行号
-v:打印不符合要求的行
-A:后跟一个数字n,表示打印符合要求的行以及下面n行
-B:后跟一个数字n,表示打印符合要求的行以及上面n行
-C:后跟一个数字n,表示打印符合要求的行以及上下各n行
-r:会把目录下所有的文件全部遍历
--color:把匹配到的关键词用红色标示
例子:

  1. 过滤出带有某个关键词的行并输出行号
    grep -n ‘root’ 1.txt
  2. 过滤出不带有某个关键词的行并输出行号
    grep -nv ‘root’ 1.txt
  3. 过滤出所有包含数字的行
    grep '[0-9]' 1.txt
  4. 过滤出所有不包含数字的行
    grep -v '[0-9]' 1.txt
  5. 去除所有以#开头的行
    grep -v '^#' 1.txt
  6. 去除所有空行和以#开头的行
    grep -v '^$' 1.txt|grep -v '^#'
  7. 过滤出以英文字母开头的行
    grep '^[a-zA-Z]' 1.txt
  8. 过滤出以非数字开头的行
    grep -v '^[0-9]' 1.txt或者grep '^[^0-9]' 1.txt
  9. 过滤任意一个或多个字符
    grep 'r.o' 1.txt;grep 'rt' 1.txt ;grep 'r.t' 1.txt
  10. 过滤出包含root的行以及下面一行
    grep -A1 'root' 1.txt
  11. 过滤出包含root的行以及上面一行
    grep -B1 'root' 1.txt
  12. 指定过滤字符次数
    grep 'o{2}' 1.txt
  13. 把一个目录下,过滤所有.php文档中含有eval的行
    grep -r --include="
    .php" 'eval' /data/
  14. 过滤两个或多个关键词
    grep -E '123|abc' filename #找出文件中包含123或者abc的行
    或者egrep '123|abc' filename
    或者awk '/123|abc/' filename

egrep=grep -E

  1. 匹配1个或者1个以上+前面的字符
    egrep 'o+' 1.txt
  2. 匹配0个或者1个?前面的字符
    egrep 'o?' 1.txt
  3. 匹配roo或者匹配body
    egrep 'roo|body' 1.txt
  4. 用括号表示一个整体,下面例子会匹配roo或者ato
    egrep 'r(oo)|(at)o' 1.txt
  5. 匹配1个或者多个oo
    egrep '(oo)+' 1.txt

.:表示任意一个字符
:表示0个或多个前面的字符+:表示1个或多个+前面的字符?:表示0个或1个?前面的字符.*:表示任意个任意字符(包含空行)注意:+和?grep不支持,egrep才支持。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读