Linux篇---Grep和正则匹配
一.前述
Linux中正则匹配查找比较常用,所以分享一篇关于正则匹配和Grep结合的文章。
二.匹配规则
匹配操作符:
\ 转义字符
. 匹配任意单个字符
[1249a],[^12],[a-k] 字符序列单字符占位
^ 行首
$ 行尾
\<,\>:\<abc 单词首尾边界
| 连接操作符
(,) 选择操作符
\n 反向引用
重复操作符:
? 匹配0到1次。
* 匹配0到多次。
+ 匹配1到多次。
{n} 匹配n次。
{n,} 匹配n到多次。
{n,m} 匹配n到m次。
与扩展正则表达式的区别:grep basic
\?, \+, \{, \|, \(, and \)
匹配任意字符 .*
三。示例
oxx12121212ooxx
ooxx 12121212
oox 12121212
1212 ooxx 1212
oo3xx
oo4xx
ooWxx
oomxx
$ooxx
oo1234xx
ooxyzxx
查询有ooxx单词的行
grep "\<ooxx\>" test.txt
查询以ooxx开头的单词
查询有数字的行
grep "[0-9]" test.txt;
grep "[34]" test.txt;
ps:【】是一个字符序列,占位符。
查询有4个数字的行
grep "[0-9]\{4\}" test.txt
ps:重复操作符,自定义的需要转义。
查询有4个数字的行,但前后都没有数字的行
grep "[^0-9][0-9]\{4\}[^0-9]" test.txt
ps:^是取反的意思。