文本处理三剑客之grep(包括常用正则表达式)
什么是正则表达式
正则表达式,又称正规表示法、常规表示法。(英语:RegularExpression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式的文本。(摘自百度百科) 个人理解:正则表达式是由一些特殊字符及文本所标写的一种模式,通过搭配文本处理工具来搜索文本并将匹配数据打印出来。 正则表达式分类 基本的正则表达式(BasicRegular Expression又叫BasicRegEx简称BRE) 扩展的正则表达式(Extended Regular Expression又叫Extended RegEx简称ERE) 引擎:采用不同算法,检查处理正则表达式的软件模块
基本正则表达式的元字符字符匹配 .单个字符 []匹配任意字符以内范围 [^]匹配任意字符以外的的范围(取反) [:digit:]匹配任意数字 [:lower:]匹配任意小写字母 [:upper:]匹配任意大写字母 [:alpha:]匹配任意大小写字母 [:space:]匹配任意空白或空格 [:punct:]匹配所有标点符号 [:alnum:]匹配所有字母和数字
次数匹配 *匹配前一个字符的0到任意次 .*任意字符的任意长度 ?匹配前面的字符0-1次 +匹配前面字符的1次以上包括1次 {n}匹配前面字符n次 {m,n}匹配前面字符最少m,最多n次 {,m}最少m次 {m,}最多m次 位置锚定 ^行首 $行尾 ^$空行 &;词首锚定&;词尾锚定 b词首锚定b词尾锚定 &;匹配整个单词&; 分组 将一个或多个字符绑定在一起作为一个整体处理 () 例如:(root)匹配一行中所有为root字符的组 ab*c 、表示的是b的任意次而不是说是ab的任意次,要实现这一功能,就可以使用分组(ab)*c 分组括号中的模式匹配到的内容会被正则表达式引擎自动记录在内部变量中,这些变量为: 1:模式从左侧开始,第一个左侧括号以及与之匹配的右括号之间的模式所匹配到的字符 2:模式从左侧开始,第二个左侧括号以及与之匹配的右括号之间的模式所匹配到的字符 括号可以内嵌但不能交叉
扩展正则表达式扩展正则表达式的用法 erep -E或egrep
扩展正则表达式的元字符 字符匹配 .任意单个字符 []指定范围内的字符 []不在范围内的字符,取反 次数匹配 *匹配前面字符的任意次 ?匹配前面自0次或1次 +匹配前面字符至少1次以上包括1次 {n}匹配n次 {n,m}匹配至少n次最多m次
位置锚定 ^行首 $行尾 ^$空行 &;,b:句首 &;,b:句尾 或者使用| A|b:A或b grep的基本理解
文本搜索工具,通过正则表达式及文本字符编写的过滤条件进行搭配来对文本进行匹配检查,打印匹配并输出结果。 grep基本选项
1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式) 2、显示/etc/passwd文件中不以/bin/bash结尾的行 3、显示用户rpc默认的shell程序 4、找出/etc/passwd中的两位或三位数 5、显示/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行 6、找出"netstat -tan"命令的结果中以'LISTEN'后跟0、1或多个空白字符结尾的行 7、添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin),而后找出/etc/passwd文件中用户名同shell名的行 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- jsonp —— 跨域请求遇到的问题,服务接口返回View 对象才成
- actionscript-3 – 触摸starling sprite中空白空间的事件
- oracle 取当前日期时间的前一天前一小时前一分钟前一秒
- Swift多线程:GCD进阶,单例、信号量、任务组
- 浅谈:Ext.data.JsonStore
- ruby-on-rails – capistrano 3.0.1当使用capistrano / rai
- 为PostgreSQL讨说法:浅析Uber切换MySQL
- oracle中decode函数的使用方法示例
- objective-c – 堆栈跟踪中方法名称旁边的数字是多少?
- c – 我在项目中使用的所有数据类型的特殊类