grep 及 正则表达式

文本查找的需要:

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

grep [options] PATTERN [FILES]

  1. -i 忽略大小写
  2. –color 显示标注颜色
  3. -v 显示没有被模式匹配到的行
  4. -o 只显示被匹配到的字符串

*:任意长度的任意字符
?:任意单个字符
[]:指定范围内的
[^]:指定范围外的

正则表达式(regular expression)(REGEXP)

元字符:
.: 匹配任意单个字符
?:任意单个字符
[]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符
字符集合:[:digit:]数字,[:lower:]小写字母,[:upper:]大写字母,[:punct:]标点符号,[:space:]空格,[:alpha:]所有字母,[:alnum:]字母数字下划线,

匹配次数(贪婪模式:尽可能长的去匹配):
*:匹配其前面的字符任意次
a,ab,aab,acb,adb,amnb
a*b
只能匹配到:b,ab,aab

.*:匹配任意长度的任意字符
能匹配到:ab,aab,acb,adb,amnb

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

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

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

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

分组:
()
(ab)*:包含任意个ab的字符串。
\1:后向引用

grep:使用基本正则表达式定义的模式来过滤文本的命令:
-E:使用扩展正则表达式
-A (数值n):显示被匹配到的行以及其下面的n行
-B (数值n):显示被匹配到的行以及其上面的n行
-C (数值n):显示被匹配到的行以及其上面的n行和下面的n行

扩展正则表达式

字符匹配:
.:
[]:
[^]:

次数匹配:
*:其前字符任意次
?:其前字符0次或1次
+:匹配其前字符至少1次
{m,n}(无需使用反斜线):匹配其前面的字符至少m次,至多n次

位置锚定:
^:
$:
\<:
>:

分组:
():分组
\1,\2,\3,…

或者
|:or的意思
(C|c)at:小写或者大写C后接着at。
找出1-255之间的数字:
$:\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])>

grep -E = egrep
$:ipconfig | egrep –color

grep,egrep,
fgrep:(fast)不支持 正则表达式

阅读更多
版权声明:本文为博主原创文章,转载请注明出处,谢谢配合! https://blog.csdn.net/qq_27803491/article/details/51387583
文章标签: grep 正则表达式
个人分类: 运维
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭