五. 正则表达式grep, egrep, fgrep
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五. 正则表达式grep, egrep, fgrep相关的知识,希望对你有一定的参考价值。
grep,egrep,fgrep : print lines matching a pattern
1.grep :
grep [options] PATTERN FILE...
PATTERN由元字符和和普通字符组成
-i : --ignore-case , 忽略大小写
-o : --only-matching, 只显示所匹配到的字符,二不是整行
-n : --line-number, 输出所匹配行的行号
-v : --invert-match, 显示除匹配行外的所有行
-E : --extended-regexp, egrep
-F : --fixed-strings, fgrep
-P : --per-regexp
-A NUM : --after-context, 显示匹配行后NUM行
-B NUM: --before-context,显示匹配行强NUM行
-C NUM: --context,显示匹配行前、后NUM行
元字符
匹配字符:
. : 匹配任意单个字符
[],[^] : 匹配指定的单个字符
[0-9], [[:digit:]] : 匹配单个数字
[[:alpha:]] : 匹配单个大、小写字母
[[:lower:]] : 匹配单个小写字母
[[:upper:]] : 匹配单个大写字母
[[:alnum:]] : 匹配单个数字或字母
[[:bank:]] : 匹配单个空白字符
[[:punct:]] : 匹配标点符号
[[:contrl:]] : 匹配当控制字符
[[:xdigit:]] : 匹配单个16进制数
匹配次数:用来指定前面的字符出现的次数
* : 任意次数,包括0次
\+ : 至少一次
\? : 0次或1次,前面的字符可有,可无
\{m\}, \{0,n\}, \{m,n\}, \{m,\} : 分别指m次,最多n次,m-n次,最少m次
.* : 任意长度,任意字符
位置锚定:
^ : 行首锚定,模式左侧
$ : 行尾锚定,模式右侧
\< : 词首锚定,单词模式左侧,单词指由数字和字母构成的字符串
\> : 词尾锚定,单词右侧
^PATTERN$, 匹配整行只有指定的模式
^$ : 空行
^[[:blank:]]$ : 整行无可见字符
\<word\> : 匹配整个单词
分组
\(\) 将任意个字符用括号括起来做一个整体进行匹配
后向引用:应用前面分组括号所匹配的内容,非模式本身, \1,\2 ...
\(th\).*\1 : 匹配第一个括号所匹配的内容
2. egrep : 等同于 grep -E
egrep [options] PATTERN FILE...
PATTERN由元字符和和普通字符组成
-i : --ignore-case , 忽略大小写
-o : --only-matching, 只显示所匹配到的字符,二不是整行
-n : --line-number, 输出所匹配行的行号
-v : --invert-match, 显示除匹配行外的所有行
-A NUM : --after-context, 显示匹配行后NUM行
-B NUM: --before-context,显示匹配行强NUM行
-C NUM: --context,显示匹配行前、后NUM行
PATTERN由元字符和和普通字符组成
元字符
匹配字符:
. : 匹配任意单个字符
[],[^] : 匹配指定的单个字符
[0-9], [[:digit:]] : 匹配单个数字
[[:alpha:]] : 匹配单个大、小写字母
[[:lower:]] : 匹配单个小写字母
[[:upper:]] : 匹配单个大写字母
[[:alnum:]] : 匹配单个数字或字母
[[:bank:]] : 匹配单个空白字符
[[:punct:]] : 匹配标点符号
[[:contrl:]] : 匹配当控制字符
[[:xdigit:]] : 匹配单个16进制数
匹配次数:用来指定前面的字符出现的次数
* : 任意次数,包括0次
+ : 至少一次
? : 0次或1次,前面的字符可有,可无
{m}, {0,n}, {m,n}, {m,} : 分别指m次,最多n次,m-n次,最少m次
.* : 任意长度,任意字符
位置锚定:
^ : 行首锚定,模式左侧
$ : 行尾锚定,模式右侧
\< : 词首锚定,单词模式左侧,单词指由数字和字母构成的字符串
\> : 词尾锚定,单词右侧
^PATTERN$, 匹配整行只有指定的模式
^$ : 空行
^[[:blank:]]$ : 整行无可见字符
\<word\> : 匹配整个单词
分组
() 将任意个字符用括号括起来做一个整体进行匹配
后向引用:应用前面分组括号所匹配的内容,非模式本身, \1,\2 ...
(th).*\1 : 匹配第一个括号所匹配的内容
3.fgrep : 不支持正则表达式, 仅匹配指定的字符串
fgrep [optings] PATERN File...
以上是关于五. 正则表达式grep, egrep, fgrep的主要内容,如果未能解决你的问题,请参考以下文章