Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1363624
  • 博文数量: 632
  • 博客积分: 2778
  • 博客等级: 大尉
  • 技术积分: 3387
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-31 09:09
个人简介

123

文章分类

全部博文(632)

文章存档

2014年(36)

2013年(33)

2012年(563)

分类: LINUX

2013-07-09 12:00:48

原文地址:正则表达式:grep,egrep 作者:windakcity

                        正则表达式:grep,egrep
 正则表达式是处理字符串的一种表示方式
 要注意语系对正则表达式的影响
 其中的字符与通配符不同

grep
 #grep [-A] [-B] [--color=auto] '搜索字符串' filename
    -A:后面加数字,为after之意,表示除此行之外,后面的n行业列出来
    -B:...前面的n行业列出来
    --color=auto:可将正确的那个选取数据列出颜色

 #dmesg |grep -n -A3 -B2 --color=auto 'eth'
                   也可以在 ~/.bashrc 内加上 alias grep='grep --color=auto'


行首与行尾字符 ^  $
 ^ 表示行首(在[]外表示行首,在[]内表示反向选择)
 $ 表示行尾
   #grep -n '^[a-z]' filename       将行首为小写字母的行列出来
   #grep -n '^the' filename          将行首为the的行列出来
   #grep -n '\.$' filename    行尾是小数点的行列出来
   #grep -n '^$' filename    将空行列出来

   #grep -n 'g.*g' file                   
   #grep -n 'o\{2\}' file         列出有两个o的那一行
   #grep -n 'o\{2,5\}' file     有2~5个o的那一行
   #grep -n 'go\{2,\}g'        g...g之间有两个以上o的行列出来

基本正则表达式元字符集
 *    0个或多个在*字符之前的那个普通字符
 .    匹配任意字符
 ^    匹配行首,或者后面字符的非    
 $    匹配队尾
 []    匹配字符集合    
 \    转义符,屏蔽一个元字符的特殊意义
 \<\>    精确匹配符号
 \{n\}    匹配前面字符出现 n 次
 \{n,\}    匹配前面字符至少 n 次
 \{n,m\}    匹配前面字符出现 n~m 次

扩展正则表达式元字符集合
 ?    匹配0个或者1个在其之前的那个普通字符
 +      匹配1个或多个在其之前的那个普通字符
()   表示一个字符集和或者用在expr中
 |      表示“或”,匹配一组可选的字符
()+  多个重复组的判别

通配符(用在bash命令行)
 通配符与正则表达式元字符完全不一样,他们有自己的意思。
?   表示一个任意字符
*    表示任意位任意字符
[]   
{}
^    代表取反

扩展正则表达式egrep
 #egrep -n 'do(es)?' filename
        可输出:does  doeses doeeee  dosss  doe  等。






 
阅读(805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~