免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1270 | 回复: 0
打印 上一主题 下一主题

使用grep结合正则表达式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-01 00:15 |只看该作者 |倒序浏览

最有效地利用正则表达式
大量 UNIX 命令使用正则表达式作为参数。从技术角度而言,正则表达式 是表示某种模式的字符串(也就是说,由字母、数字和符号组成的字符序列),用于定义零或更长的字符串。正则表达式使用元字符(例如,星号
  • 和问号 [?])来匹配其他字符串的部分或全部内容。正则表达式不一定包含通配符,但通配符可以使正则表达式在搜索模式和处理文件时发挥更大的作用。
    表 1
    显示了一些基本正则表达式序列。
    表 1. 正则表达式序列
    序列
    说明
    脱字符 (^)
    匹配出现在行首的表达式,例如 ^A
    美元符号 ($)
    匹配出现在行末的表达式,例如 A$
    反斜杠 (\)
    取消下一个字符的特殊含义,例如 \^
    方括号 ([])
    匹配括起来的任一字符,例如 [aeiou](使用连字符 [-] 表示范围,例如 [0-9])。
    [^ ]
    匹配除括起来字符以外的任一字符,例如 [^0-9]
    句点 (.)
    匹配除行尾之外的任意单个字符
    星号 (*)
    匹配零个或多个前驱字符或表达式
    \{x,y\}
    匹配出现过 xy 个和前面相同的内容
    \{x\}
    精确匹配出现过 x 个和前面相同的内容
    \{x,\}
    匹配出现过 x 个或更多和前面相同的内容
    清单显示了与 grep 命令一起使用的一些基本正则表达式。
    清单 12. 使用正则表达式和 grep
                   
    $ # Lists your mail
    $ grep '^From: ' /usr/mail/$USER   
    $ # Any line with at least one letter  
    $ grep '[a-zA-Z]'  search-file.txt
    $ # Anything not a letter or number
    $ grep '[^a-zA-Z0-9] search-file.txt
    $ # Find phone numbers in the form 999-9999
    $ grep '[0-9]\{3\}-[0-9]\{4\}' search-file.txt
    $ # Find lines with exactly one character
    $ grep '^.$' search-file.txt
    $ #  Find any line that starts with a period "."         
    $ grep '^\.' search-file.txt
    $ # Find lines that  start with a "." and 2 lowercase letters
    $ grep '^\.[a-z][a-z]' search-file.txt


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/22732/showart_1982322.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP