文本三剑客之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

相关推荐