当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > shell 阅读笔记-正则表达式与grep

Unix/Linux
Linux 备份 恢复方法
Linux玩CS反恐精英的方法
在一个ISO镜像中集成多个不同的linux发行版,可刻盘,可引导
Linux 快捷键使用
Linux DHCP 服务器配置方法介绍
Linux 22端口的修改方法
Linux 记录会话过程的命令
Linux 后台执行程序如何操作?
linux Wget命令来浏览网页的方法
Linux tail命令的巧妙应用
Wine 中文存在很多的乱码怎么解决方法
linux 新手教程之创建锁文件的方法
配置Linux 保证其系统的安全
Linux DHCP协议实现过程
Linux系统下破解SAM密码
linux/unix vi 编辑器用法详解
Linux 误删文件的解决方法
Linux系统下的历史记录删除方法
Red Hat Linux 安全设置指南
Linux基本命令-注销、关机、重启

Unix/Linux 中的 shell 阅读笔记-正则表达式与grep


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 90 ::
收藏到网摘: n/a

正则表达式与grep ,在指南的第7和8章
shell 阅读笔记-正则表达式与grep一  正则表达式基本元字符集及其含义    ^     只只匹配行首    $     只只匹配行尾    *     只一个单字符后紧跟*,匹配0个或多个此单字符    [ ]   只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用-            表示[ ]内字符序列范围,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ]    \     只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有           特殊含义。\可以使其失去应有意义    .     只匹配任意单字符  pattern\      只用来匹配前面pattern出现次数。n为次数  pattern\m    只含义同上,但次数最少为n  pattern\    只含义同上,但pattern出现次数在n与m之间二  grep 的用法 1 双引号引用   在grep命令中输入字符串参数时,最好将其用双引号括起来 2 grep选项   常用的g r e p选项有:   -c 只输出匹配行的计数。   -i 不区分大小写(只适用于单字符)。   -h 查询多文件时不显示文件名。   -l 查询多文件时只输出包含匹配字符的文件名。   -n 显示匹配行及行号。   -s 不显示不存在或无匹配文本的错误信息。   -v 显示不包含匹配文本的所有行。 3  精确匹配     使用grep抽取精确匹配的一种更有效方式是在抽取字符串后加\>。假定现在精确抽取48,则为"48\>"三 grep和正则表达式     使用正则表达式时最好用单引号括起来,这样可以防止grep中使用的专有模式与一些shell命令的特殊方式相混淆。  1 模式范围    假定要抽取代码为484和483的城市位置,上一章中讲到可以使用[ ]来指定字符串范围,这里用48开始,    以3或4结尾,这样抽出484或483。grep '48[34]' data.f  2 不匹配行首     如果要抽出记录,使其行首不是48,可以在方括号中使用^记号,表明查询在行首开始。     grep '^[^48]' data.f  3 匹配任意字符   如果抽取以L开头,以D结尾的所有代码,可使用下述方法,因为已知代码长度为5个字符:    grep 'L...D' data.f  4 日期查询    一个常用的查询模式是日期查询。先查询所有以5开始以1 9 9 6或1 9 9 8结尾的所有记录。使用模式5..199[6,8].这意味着第一个字符为     5,后跟两个点,接着是199,剩余两个数字是6或8。     grep '5..199[6,8]' data.f    查询包含1998的所有记录的另外一种方法是使用表达式[0-9]\[8],含义是任意数字重复3次,后跟数字8,虽然这个方法不像上一个方    法那么精确,但也有一定作用。  5 使用grep匹配“与”或者“或”模式    grep命令加- E参数,这一扩展允许使用扩展模式匹配。例如,要抽取城市代码为2 1 9或2 1 6,方法如下:    grep -E '219|216' data.f  6 空行   结合使用^和$可查询空行。使用- n参数显示实际行数:    grep '^$' data.f  7 grep 与类名的使用   类等价的正则表达式类等价的正则表达式  [[:upper:]]   [A-Z]               [[:alnum:]]  [0-9a-zA-Z]  [[:lower:]]   [a-z]               [[:space:]] 空格或t a b键  [[:digit:]]   [0-9]                [[:alpha:]] [a-zA-Z]