一.前述
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:^是取反的意思。