Grep egrep正则表达式
分为:基本正则表达式 (basic REGEXP) 和 扩展正则表达式 (Extended REGEXP)
grep:
使用基本正则表达式定义的模式来过滤文本的命令根据模式搜索文本,并将符合模式的文本行显示出来。
Patten:(模式) 有文本字符和正则表达式的元字符组合而成匹配条件
( 选项 模式 文件 )
支持选项
-i 忽略大小写 al 'grep= grep --color '
--colour 显示颜色 #grep -colour 'root'/etc/passwd
-v 反向查找 显示没有被模式匹配到的行。
-o 只显示被模式匹配到的字符串
每一个串 显示一行
-E 使用扩展正则表达式
-A #:当某一行被grep被模式匹配的话,还显示接下来的几行,
-B #:显示前面的两行
-C #:上下的都显示)
模式怎么写?(过滤条件)
*任意长度的任意字符
? 任意单个字符
[]指定范围内的
[^]指定范围外
----------基本正则表达式----------------
元字符:
“.”: 匹配任意单个字符 例子:‘r..t’
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字符集合:
[:space:] : 表示空白字符
[:punct:] :标点符号
[:lower:] : 小写字母
[:upper:]: 大写字母
[:alpha:] 大小字母
[:digit:] 数字
[:alnum:] 数字和大小写字母
字符次数匹配:
* 匹配前面的字符任意次数 .* : 任意长度的任意字符
\? :匹配其前面的字符1次或0次,(字符可有可无)
\{m,n\}: 匹配其前面的字符至少M次,至多n次
\{1,\} 最少一次
位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首
$: 锚定行尾,此字符前面的任意内容必须出现在行尾
^$ : 空白行
锚定一个单词 出现在首部还是尾部-
\<或者\b:锚定词首 其后的任意自负必须作为单词首部出现
\> 或者\b: 锚定词尾其前的任意自负必须作为单词尾部出现
例子:
# grep “root\>" test2.txt
# this is root
#grep '\<root' test2.txt
#root uaer is ...
分组
\( \)
\(ab\)* ab 当作一个整体,*修饰的是ab整体
ab 整体可以出现一次或者多次,
后向引用
\1:第一个左括号以及与之对应的右括号所包含的所有内容
------------------扩展正则表达式-----------------
Grep –E =egrep
-E 使用扩展正则表达式
字符匹配
.
[]
[^]
次数匹配:
+ :重复1个或多个前一个字符
?:0个或1个前一个字符
| :用或(or)的方式找出数个字符
():分组
()+:同上
例子:#grep '^r..t' /etc/passwd
#grep 'h$' /etc/inittab
.
转载于:https://blog.51cto.com/keleyingwu/1150363