grep:根据模式搜索文本,并将符合模式的文本行显示出来
Pattern:文本字符和正则表达式的元字符组合而成匹配条件
-i :忽略大小写
--colour/--color:显示高亮
-v :显示没有被匹配到的行
-o :只显示被模式匹配到的字符串
-E :使用扩展正则表达式
-A :A后跟数字,显示其后的N行
-B :B后跟数字,显示其前的N行
-C :C后跟数字,显示其前后各N行
* :任意长度的任意字符
? :任意单个字符
[]:
[^]:
正则表达式
元字符:
. :匹配任意单个字符
[] :匹配指定范围内的任意单个字符
[^] :匹配指定范围外的任意单个字符(取反的意思)
[:digit:]:所以数字
[:alpha:]:所以字母
[:alnum:]:所以数字和字母
[space::]:空白字符
字符个数:
* :匹配其前面的字符任意次
.* :任意长度的任意字符
\? :匹配其前面的字符一次或0次
\{m,n\}:匹配其前面的字符至少m次,至多n次
位置锚定:
^ :锚定行首,此字符后面的任意内容必须出现在行首
$ :锚定行尾,此字符前面的任意内容必须出现在行尾
^$ :空白行
\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b:锚定词尾,其前面的任意字符必须作为单词尾部出现
\< \>:精确匹配
分组:
\( \):括号内的内容是一个整体
后向引用
\1 :引用第一个括号内的所有内容
\2 :引用第二个括号内的所有内容
……
扩展正则表达式:
+ :匹配其前面的字符至少一次
| :或(or),选择|左或右
() :分组. \1,\2,\3,...
例如:
找出所有的数字:
egrep --color '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
找出所有的IP地址
ifconfig|egrep --color '(\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>\.){3}\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>'
结果:inet addr:10.10.21.225 Bcast:10.10.255.255 Mask:255.255.0.0
IPv4:
5类:A B C D E
A:1-127
B:128-191
C:192-223