文本三剑客之grep

简述grep

grep:

作用:文本搜索工具,根据用户制定的“(过滤模式)” 对目标文本逐行进行匹配检查;打印匹配的行;

模式:由正则表达式的元字符及文本字符所编写出的过滤条件;

grep [选项] PATTERN  [FILE]

常用选项:

–color=auto              #自动对匹配到的文本加颜色,默认红色

-i     #ignorecase,忽略字符大小写;

-o    #仅显示匹配到的字符串本身

-v    #反向匹配,显示不能被模式匹配到的行

-E    #支持使用扩展的正则表达式

-q    #静默模式,既不输出任何信息

#号表示数字

-A  #                 #  后#行

-B  #                #   前#行

-C  #                #    前后各#行

基本正则表达式元字符

字符匹配:

.  :匹配任意单个字符

[]: 匹配指定范围内内的单个字符

[^]:匹配非指定范围内的单个字符

[:digit:] 、[:lower:]、[:upper:]、[:alpha:]、[:alnuml:]、[:punct:]、 . . .

匹配次数:用在要指定其出现的次数的字符后面,用于限制其前面字符出现的次数;默认工作在贪婪模式

*:匹配前面的字符任意次,0,1,  多次;

例如: grep “x*y”

abxy

aby

xxxxxy

yab

.*:匹配任意长度的任意字符

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

\+:匹配其前面的字符1次或多次;前面的字符要出现至少一次;

\{m\}:匹配其前面的字符m次;m表示数字;

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

\{0,n}:至多n次

\{m,\}:至少m次

位置锚定:

^:行首锚定;用于模式最左侧;

$:行尾锚定;用于模式最右侧;

^PATTERN$:用PATTERN匹配整行;

^$:  空白行

^[[:space:]]*$:空行或包含空白字符的行;

单词:非特殊字符组成的连续字符串都成为单词;

\<或\b:词首锚定,用于单词模式的左侧;

\>或\b:词尾锚定,用于单词模式的右侧;

\<PATTERN\>:精确锚定单词;

分组及引用:

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

\(xy\)*ab

分组括号中的模式匹配到的内容会被正则表达式引擎自动记录与内部的变量中,这些变量为:

\1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符:

\2

\3

He loves his lover
He likes his lover
She likes her liker
She loves her liker

[ root@centos7~]# grep “\(l..e\).*\1” test.txt
# 后向引用:引用前面的分组括号中的模式所匹配到的字符;

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96657

(1)
会飞的蜗牛会飞的蜗牛
上一篇 2018-04-20 18:39
下一篇 2018-04-20 19:54

相关推荐

  • PXE自动化安装centos6与centos7

    PXE自动化安装centos7系统1、确保防火墙和selinux全部关闭2、yum -y install dhcp tftp-server httpd syslinux3、启动相关服务systemctl start httpdsystemctl enable httpdsystemctl start tftp.servicesystemctl enable …

    Linux笔记 2018-05-28
  • mysql练习题

    导入hellodb.sql生成数据库(1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄MariaDB [hellodb]> select Name,Age from students where Age>25 and Gender=’M’;(2) 以ClassID为分组依据,显示每组的平均…

    Linux笔记 2018-06-09
  • 第4周作业

     1、复制/etc/shel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/shel /home/tuser1 [root@localhost ~]# chmod -R 700 /home/tuser1  2、编辑/etc/group文…

    Linux笔记 2018-06-04
  • Linux进程管理工具

    进程管理

    Linux笔记 2018-05-06
  • Linux系统命令总结——文件管理篇

    整理了一些和文件管理有关的小命令、索引节点、链接文件、通配符,以及标准I/O的知识点,希望对各位有些许的帮助顺便也加深一下自己的记忆和理解。学如逆水行舟,不进则退。

    2018-03-30