13grep和正则表达式

grep:Global search REgular expression and Print out the line . 文本过滤工具,根据用户指定的模式对目标文本进行匹配检查;打印匹配到的行。过滤即不改变原来文本数据。

grep [options] PATTERN [file…]

–color=auto: 对匹配到的文本着色显示

-v:显示不被pattern匹配到的行

-i:忽略大小写

-n:显示匹配的行号

-c:统计匹配的行数

-o:仅显示匹配到的字符串

-q:静默模式,不输出任何模式

-A #:after,后#行一并显示

-B #:before,前#行一并显示

-C #:context,前后#行一并显示

-e:实现多个选择间的逻辑或关系–> grep -e ‘cat’ -e ‘dog’ file

grep的PATTERN 支持正则表达式,支持正则表达式的还有 vim,less,nginx等

正则表达式:regexp,由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能

正则表达式有基本正则表达式(BRE)和扩展正则表达式(ERE)两种,元字符分类则有四种:字符匹配、匹配次数、位置锚定和分组

字符匹配:

. 表示匹配任意单个字符

[] 表示匹配指定范围内的任意单个字符

[^] 表示匹配指定范围外的任意单个字符

[:alnum:] 字母和数字

[:alpha:] 英文字母

[:lower:] [:upper:]  大、小写字母

[:blank:] (空格和制表符tab)

[:space:] 垂直和水平的空白字符(比[:blank:]包含的范围广)

[:cntrl:] 不可打印的控制字符(退格、删除、警铃。。。)

[:digit:] [:xdigit:] 十进制数字,十六进制数字

[:graph:] 可打印的非空白字符

[:print:] 可打印的字符

[:punct:] 标点符号

匹配次数:

* 匹配前面的字符任意次,包括0次。在贪婪模式下:即尽可能长的匹配

.* 任意长度的任意字符

\? 匹配器前面的字符 0或1次

\+ 匹配其前面的字符至少一次

\{n\} 匹配前面的字符n次

\{m,n\}匹配其前面的字符至少m次,至多n次

位置锚定:

^ 行首锚定

$ 行尾锚定

^pattern 用于模式匹配整行 ^$ 空行  ^[[:space:]]*$  空白行

\<,\b 词尾锚定

\>,\b 词首锚定

\<pattern\> 匹配整个单词

分组:

\(\) 将一个或多个字符捆绑在一起当做一个整体进行处理,eg:\(root\)\+

分组括号中的的模式匹配到的内容会被正则表达式引擎记录与内部的变量中,这些变量的命名方式为:\1,\2,\3,…

\1 表示从坐骑第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符

示例:\(string1\+\(string2\)*\)

\1 :string1\+\(string2\)*

\2 :string2

后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本省

egrep及扩展正则表达式

egrep = grep -E 

egrep [options] pattern [file…]

扩展正则表达式的元字符:

字符匹配:

.

[]

[^]

次数匹配:

*

?

+

{m}

{m,n\}

位置锚定:

^

$

\<,\>,\b

分组:

()

后向引用:\1,\2…

或者:

a|b : a 或b

C|cat :C 或者cat

(C|c)at: Cat或者cat

—-joker的部落阁

原创文章,作者:joker,如若转载,请注明出处:http://www.178linux.com/61145

赞 (0)
jokerjoker
上一篇 2016-11-27 22:52
下一篇 2016-11-27 22:56

相关推荐

  • 第二周作业

    一Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 which命令:显示(shell)命令全部的路径 which [option] programmame […] –skip-alias:忽略别名   whereis命令:搜索二进制程序,源码,和帮助手册页的命令 whereis [option] na…

    Linux干货 2017-02-18
  • Linux下chomd修改文件或目录权限

    文件或目录权限分为三个字段 以/tmp为例ll后可看到权限为:     drwxrwxrwt 第一d为文件类型 Linux下的文件类型     -:普通文件     d:目录文件     b:块设备  &nbs…

    Linux干货 2016-02-28
  • 第四周练习

    1、复制/etc/skel目录为/home/tuser1, 要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1 chmod -R 700 /home/tuser1 2、编辑/etc/group文件,添加组hadoop。 vi /etc/group hadoop:x:2017 …

    Linux干货 2017-08-04
  • 文件查找——藏的在深也没用

    locate 依赖与事先构建好的数据库查找          系统自动实现(周期性任务)          手动更新数据库(updatedb) 工作特性    …

    Linux干货 2016-08-15
  • 源码包编译安装MariaDB-10.1.22

    源码包编译安装MariaDB-10.1.22 1、获取源码包        mariadb-10.1.22.tar.gz 2、编译环境及依赖关系     yum groupinstall -y Development Tools yum -y install …

    Linux干货 2017-03-16
  • 马哥linux0803作业内容

    1. 创建sysadmins组 将用户user1,user2,user3加入sysadmins组中 将user3设置为sysadmins的管理员 用user3登录,将user2从组中移除 设置sysadmins的密码centos 设置user1 在创建新文件时,文件的所属组为sysadmins 删除user1…3 删除sysadmins 2、三种权限rwx对…

    Linux干货 2016-08-04