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

Linux中的正则表达式 grep egrep fgrep

2016-01-21 18:07 489 查看
正则表达式: REGEXP REGuler EXPression,使用元字符和其他字符串来描述、匹配一系列符合某个句法规则的字符串。默认尽可能长得匹配(贪婪模式)。

元字符:
.:匹配任意单个字符(文件名通配中?表示任意单个字符)

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

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

[:space:]:空白字符

[:puntt:]:所有标点符号

[:upper:]:所有大写字母

[:lower:]:所有小写字母

[:alpha:]:所有大小写字母
[:digit:]:所有数字
[:alnum:]:所有数字和大小写字母字符次数匹配: *:匹配其前字符任意次数(文件名通配中*表示任意长度的任意字符) .*:任意长度的任意字符
\?:匹配其前字符一次或零次,可用可无
\{\}:\{m,n\}匹配其前字符至少m次,最多n次 eg:\{1,\}至少1次;\{0,3\}最多3次位置锚定: ^:锚定行首,其后字符必须出现在行首
$:锚定行尾,其前字符必须出现在行尾
^$:空白行
\<:其后字符必须作为单词首部出现,可用\b代替
\>:其前字符必须作为单词尾部出现,可用\b代替
eg:\<root\>==\broot\b分组:\(\) eg:\(a,b\)*:ab出现任意次 小括号最主要的作用不是为了使其中的内容当作一个整体被看待,而是方便后面内容引用(后向引用)
eg:\1:调用前面第一个左括号及其与之对应右括号所包括的内容
\n:调用前面第n个左括号及其与之对应右括号所包括的内容
正则表达式:分为基本正则表达式和扩展正则表达式
扩展正则表达式:字符匹配:.,[],[^]与基本正则表达式一样
次数匹配*,?:与基本正则表达式一样,?前不需要加\+:其前字符至少一次==基本正则表达式中 \(1,\){m,n}:至少m次至多n次,与基本正则表达式花括号前少了\
锚定字符: \< \> ^ $ \b 与基本正则表达式一样
分组:():不需加\ 支持 \1,\2,\3,…
或者: |:or 或者 eg:a|b a或者b eg:C|cat==C或者cat(而非Cat或者cat)

grep:根据模式去搜索文本,并将符合模式的文本行显示出来。使用基本正则表达式及其定义的模式来过滤文本的命令。模式:Pattern 文本字符和正则表达式的元字符组合而成的匹配条件 -i:忽略大小写
--color:被匹配到的字符加颜色显示
-o:只显示被匹配到的字符串
-v:反向查找,显示没有被模式匹配到的内容行
-E:使用扩展正则表达式
-A n:显示被匹配到的行和其后n行
-B n:显示被匹配到的行和其前n行 -C n:显示被匹配到的行和其前后各n行
egrep:使用扩展正则表达式及其定义的模式来过滤文本的命令。 egrep=grep -E

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