Linux Shell中强大的正则grep
来源:互联网 发布:天猫魔盒ip地址端口号 编辑:程序博客网 时间:2024/04/30 03:39
本元字符集及其含义
^ 只只匹配行首
$ 只只匹配行尾
* 只一个单字符后紧跟*,匹配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]
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
- Linux Shell中强大的正则grep
- Linux Shell中强大的正则grep
- linux中强大的搜索命令grep
- linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本
- grep --- Linux中强大的文本搜索工具
- 强大的grep用法详解:grep与正则表达式
- 强大的grep用法详解:grep与正则表达式
- 强大的grep用法详解:grep与正则表达式
- 强大的grep用法详解:grep与正则表达式
- 强大的grep用法详解:grep与正则表达式
- 强大的grep用法详解:grep与正则表达式
- 强大的grep用法详解:grep与正则表达式
- linux grep命令 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Express
- linux中强大且常用命令:find、grep
- linux中强大且常用命令:find、grep
- linux中强大且常用命令:find、grep
- linux中强大且常用命令:find、grep
- linux中强大且常用命令:find、grep
- Shell Script(bash)教学例
- 关于uC/OS-II中优先级翻转问题(转)
- 有感日本的众议院选举
- 什么是网络文件协议?
- 代码
- Linux Shell中强大的正则grep
- 每日英语-08/30/2009
- Junit测试
- 信息: org.jbpm.JbpmException: closed JbpmContext in different order then they were created... check your try-finally's around Jbpm
- 要求
- java 中的 堆 和 栈
- hibernate中的映射关联关系
- 一分钟管理
- 十大木马查杀