正则表达式grep、egrep、fgrep
2015-08-28 20:00
357 查看
日期: 2015年08月27日 正则表达式:(RegularExpression,在代码中常简写为rex、regexp或RE)正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。通常被用来检索、替换符合某个模式的文本。正则表达式是指一类字符书写的模式(pattern)这些字符成为元字符,元字符不表示其字面意义,而用于表示通配或控制功能。 正则表达式包括两类:基本正则表达式,扩展正则表达式 grep命令只支持基本正则表达式;egrep支持扩展正则表达式("e" 表示扩展),fgrep表示fast grep,不支持正则表达式,所有的元字符都被当做普通字符处理,搜索速度很快。 <<========================================【grep】========================================>>grep命令功能:globalsearch regular expression(RE) and print out the line全局搜索正则表达式,并把模式所匹配到的整行显示出来 格式:grep[options] 'PATTERN' file,... 常用选项:--color=auto 指定颜色-v 反向匹配,显示不能被模式匹配到的行-o 仅匹配被模式匹配到的字串,而非整行-i 不区分大小写,ignore-case-E 支持扩展-A # 还显示模式下面的一行-B # 还显示模式上面的一行-C # 前后各显示一行 元字符:. 任意单个字符* 匹配其前面的字符任意次;.* 匹配任意长度的任意字符\? 匹配其左侧0次或1次\+ 其左侧字符至少出现1次 []: 指定范围内的任意单个字符[^]:指定范围外的任意单个字符[0-9], [[:digit:]][a-z], [[:lower:]][A-Z], [[:upper:]][[:alpha:]][[:alnum:]][[:space:]][[:punct:]] 次数匹配:\{m\} 匹配m次\{m,n\} 匹配至少m次,至多n次\{m,\} 至少m次;多则不限\{0,n\} 至多n次; 位置锚定:^ 锚定行首,用于模式的最左侧^CHARACTER$: 锚定行尾,用于模式的最右侧CHARACTER$\<CHARACTER 锚定词首,\bCHARACTERCHARACTER\> 锚定词尾,CHARACTER\b锚定单词:\<KEYWORD\>\bKEYWORD\b^$: 锚定空白行 分组:\(\)\(ab\)*xy 引用:\1: 后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配到的内容\2... <<========================================【egrep】========================================>>egrep命令grep-e PATTERN [FILE...]egrep[OPTIONS] PATTERN [FILE...] ★egrep和grep用法、选项、元字符都一样,不同的地方就是匹配次数和分组的时候特殊字符无需再使用\转义 次数匹配:* 匹配其前面的字符任意次;? 匹配其前面的字符0或1次;+ 匹配其前面的字符至少1次{m} 匹配其前面的字符m次;{m,n} 至少m次,至多n次{m,} 至少m次;{0,n} 至多n次; 位置锚定:^ 锚定行首,用于模式的最左侧^CHARACTER$: 锚定行尾,用于模式的最右侧CHARACTER$\<CHARACTER 锚定词首,\bCHARACTERCHARACTER\> 锚定词尾,CHARACTER\b锚定单词:\<KEYWORD\>\bKEYWORD\b^$: 锚定空白行 分组:()(ab)*xy 引用:\1: 后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配到的内容\2... |: 或者, ac|bcgrep -E "s(C|c)hool" 结果是:sChool,或school
fgrep:(f=fast)快速匹配,不解析正则表达式 作业:显示/etc/passwd文件中以bash结尾的行
显示/etc/passwd文件中的两位数或三位数
显示`netstat-tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行
添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)//这里为了效果,先显示了整行信息
找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
找出ifconfig命令执行结果中1-255之间的数字
fgrep:(f=fast)快速匹配,不解析正则表达式 作业:显示/etc/passwd文件中以bash结尾的行
显示/etc/passwd文件中的两位数或三位数
显示`netstat-tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行
添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)//这里为了效果,先显示了整行信息
找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
找出ifconfig命令执行结果中1-255之间的数字
相关文章推荐
- 使用adb更换Android媒体文件
- PHP入门指导:如何学习PHP?
- 服务器端进行转向的4种方法
- CentOS 删除自带jdk 配置自己的jdk 以及windows下安装 jdk 操作
- 详解CALayer 和 UIView的区别和联系
- Linux中的用户切换(root授权)
- EL函数以及自定义标签的应用
- 2015/8/28 回校正常学习工作
- Django之第一个app<10>
- linux下的apache、mysql自启动
- 创建一个可重用的UITableViewCell代码
- 传话
- Zookeeper 及其安装配置和启动
- 25个让Java程序员更高效的Eclipse插件
- STL源码剖析-绪论
- iOS:选择器控件UIPickerView的详解和演示
- value="hello boy"
- Scala学习第三天 Tuple、Array、May与文件操作入门实战
- 把C#中的静态方法注册进Lua的一个全局方法
- Objective-C(内存管理)