您的位置:首页 > 运维架构 > Linux

Linux学习笔记——grep及正则表达式

2016-08-20 17:06 232 查看
grep及正则表达式

文本查找的需要:
grep,egrep,fgrep

grep:根据模式搜索文本,并将符合模式的文本行显示出来。
pattern(模式):文本字符和正则表达式的元字符组合而成匹配条件

grep [options] PATTERN [FILE...]
-i:忽略大小写
--colo[u]r:加颜色
-v:反向查找(显示没有被模式匹配到的行)
-o:只显示被模式匹配到的字符串

正则表达式:REGular EXPression, REGEXP
元字符:
. :匹配任意单个字符
[ ]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字[:space:]:空白字符
符[:punct:]:标点符号
集[:lower:]:小写字母
合[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母

匹配次数(贪婪模式):
* :匹配其前面的字符任意次
.* :任意长度的任意字符
? :匹配其前面的字符1次或0次
\{m,n\}:匹配前面的字符至少m次,至多n次

位置锚定:
^ :锚定行首,此字符后面的任意内容必须出现在行首
$ :锚定行尾,此字符后面的任意内容必须出现在行尾
^$:空白行

\<或者\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或者\b:锚定词尾,其前面的任意字符必须作为单词尾部出现

\<root\> 以单词为root

分组:
\{ \}:
如 \{ab\}*
后向引用
\1:引用第一个左括号以及与之对应的右括号所包括的所有内容
\2:
\3:

正则表达式:
Basic REGEXP:基本正则表达式

Extended REGEXP:扩展正则表达式

扩展正则表达式:egrep=grep -E

字符匹配:

. :匹配任意单个字符
[ ]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字[:space:]:空白字符
符[:punct:]:标点符号
集[:lower:]:小写字母
合[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母

次数匹配:
* :匹配其前字符任意次
? :匹配其前字符0次或1次
+ :匹配其前字符至少一次
{m,n}:匹配前面的字符至少m次,至多n次

位置锚定:
^ :锚定行首,此字符后面的任意内容必须出现在行首
$ :锚定行尾,此字符后面的任意内容必须出现在行尾
^$:空白行

\<或者\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或者\b:锚定词尾,其前面的任意字符必须作为单词尾部出现

\<root\> 以单词为root

分组:
( ):分组
\1, \2, \3, ... 向后引用

或者:
|:或者

C|(c)at

fgrep:快速grep --不支持正则表达式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 表达式 字母