正则介绍_grep

正则介绍_grep(上)

正则介绍

  • 正则就是一串有规律的字符串
  • 掌握好正则对编写shell脚本有很大帮助
  • 各类编程语言中都有正则,原理是同样的
  • 经常使用的工具备grep/egrep、sed、awk

grep

过滤指定的关键词,格式为:grep [-cinvABC] '关键词' filenameshell

-c:表示打印符合要求的行数编程

-n:表示输出符合要求的行及行号vim

-i:不区分大小写编程语言

不加i,不显示第2行工具

加上i,就显示修改过的大写字母spa

-v:取反,打印不符合要求的行ci

-r:遍历全部子目录字符串

匹配全部带root的文件it

 -A :后面跟一个数字,过滤出符合要求的行以及下面n行awk

-B:后面跟一个数字,过滤出符合要求的行以及上面n行

-C:后面跟一个数字,过滤出符合要求的行以及上下各n行

grep(中)

grep用法

  • grep '[0-9]':表示过滤出包含数字的全部行

  • grep v '[0-9]':表示过滤出不包含数字的全部行

# vim /etc/inittab,:set nu可查看行数

  • grep -v '^#':表示过滤掉全部已#开头的行,^表示以什么开头

  • grep  '[^0-9]':表示过滤掉全部数字,^在中括号里表示非的意思

  • grep  -n '^[^0-9]':表示过滤出以非数字开头的行和行号

  • grep  -nv '^[^0-9]':表示过滤出以数字开头的行和行号

grep(下)

  • grep 'r.o':表示过滤出任意的一个字符, . 表示任意一个字符

  • grep 'o*o':表示过滤出零个到多个o(*前面的字符)

  • grep '.*':表示过滤出任意字符

实例用法:

  • grep 'o\ {2\ }' :表示过滤出指定字符出现的次数,{}能够是一个范围,如'o\ {0,3\ }'

还有两种表示方法:egrep 'o{2 }'   grep -E 'o {2 }'

  • grep 'o+o':表示过滤出1个到多个o(+前面的字符)

  • grep 'o?t':表示过滤出零个到1个o(?前面的字符)

  • grep -E 'root|nologin' ,|表示或者的意思

总结:

. 表示任意一个任意字符

 * 表示零个或多个*前面的字符

.* 表示通配,全部的都匹配

{} 表示范围,{}花括号前面字符的一个范围

+表示一个或多个+号前面的字符

?表示0个或一个问号前面的字符

|表示或者

相关文章
相关标签/搜索