Linux环境下常用regexp的使用
正则表达式
REGular EXPression 的简写
元字符
匹配次数
位置锚定
分组
--------------------------------------
元字符
. 匹配任意单个字符
[] 匹配指定范围内任意单个字符
[^] 匹配指定范围外的
[:space:] 空白字符
[:punct:] 标点字符
[:lower:] 小写字母
[:upper:] 大写字母
[:alpha:] 大小写字母
[:digit:] 数字
[:alnum:] 数字和大小写字母
匹配次数(贪婪模式)
* 匹配其前面的字符任意次
a*b b前面a出现任意次数
a.*b a开头b结束
.* 任意长度任意字符
\? 匹配其前面的字符1次或0次 意思是这个字符可有可无
a?b
\{m,n\} 匹配其前面的字符至少m次 至多n次
\{1,\} 至少一次
\{,3\} 至多3次
a.\{1,3\}b a和b之间至少有一个最多有三个字符
位置锚定:
^ 锚定行首 此字符后面的任意内容必须出现在行首
$ 锚定行尾 此字符前面的任意内容必须出现在行尾
grep 'b..h$' /etc/passwd
^$ 空白行
\< 其后面的任意字符必须作为单词首部出现
\> 其前面的任意字符必须作为单词尾部出现 \b这个符号的另一种写法
分组
\(\)
\(ab\)* ab 可以出现任意次
\1 第一个左括号以及与之对应的组内容
grep '\(l..e\).*\1' test3.txt
练习: 分析/etc/inittab 文件中如下文本中前两行的特征(每一行中出现在数字必须相同)请写出可以精确找到类似两行的模式
11:1:wait:/etc/rc.d/rc 1
13:1:wait:/etc/rc.d/rc 3
grep '^1\([0-9]\):\1.*\1$' /etc/inittab
grep 使用基本正则表达式定义的模式来过滤文本的命令
----------------------------------------------------
扩展正则表达式
字符匹配
. [] [^]
次数匹配
*
? 无需反斜杠了
+ 匹配其前面的字符至少一次 \{1,\}
{m,n} 不需要反斜线
位置锚定
^
$
\<
\>
分组
() 不用反斜杠
\1,\2
或者
a|b or的意思
C|cat 整个左边和右边
Cat或者cat 错
C或者cat 对
grep -E 'C|cat' text.txx
{3}重复三次
fgrep 不支持正则表达式 特别快
Linux环境下常用regexp的使用的更多相关文章
- 第十八篇 Linux环境下常用软件安装和使用指南
提醒:如果之后要安装virtualenvwrapper的话,可以直接跳到安装virtualenvwrapper的方法,而不需要先安装好virtualenv 安装virtualenv和生 ...
- Linux环境下常用软件(个人笔记编辑更改中)
近期使用CentOS,就在这里记录一下.首先,个人版本是CentOS6.5,属于centos系列,Fedora系列的理论上也可以用. 工欲善其事,必先利其器,这里介绍我的软件包配置: 1.vim(增强 ...
- Linux环境下常用的SSH命令
目录操作: rm -rf mydir /*删除mydir目录*/ mkdir dirname /*创建名为dirname的目录*/ cd mydir /*进入mydir目录*/ cd – /*回上一级 ...
- Linux环境下实现对文件读写操作
---- 今天分享一下在linux系统在实现对文件读写一些基本的操作,在这之前我们要掌握一些基本的技能在Linux环境下.比如查看命令和一个函数的具体用法,就是相当于查手册,在Linux下有一个man ...
- Linux 环境下一些常用命令(四)
转自 http://www.oschina.net/translate/20-advanced-commands-for-middle-level-linux-users 31. 命令: rm 'rm ...
- linux 环境下运行STS时 出现must be available in order to run STS
linux 环境下运行ECLIPSE时 出现 “ A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avai ...
- Linux环境下使用JFS文件系统
Linux环境下使用JFS文件系统 JFS是IBM公司为linux系统开发的一个日志文件系统.从IBM的实力及它对Linux的态度来看,JFS应该是未来日志文件系统中最具实力的一个文件系统. JFS提 ...
- mosquitto在Linux环境下的部署/安装/使用/测试
mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...
- 嵌入式LINUX环境下视频采集知识
V4L2是Linux环境下开发视频采集设备驱动程序的一套规范(API),它为驱动程序的编写提供统一的接口,并将所有的视频采集设备的驱动程序都纳入其的管理之中.V4L2不仅给驱动程序编写者带来极大的方便 ...
随机推荐
- 6-10k招几个.NET开发工程师(工作地点:成都)
目前工作的公司是一家做新加坡公司在成都的研发中心,目前有个项目组在做电子医疗记录(EMR)软件系统,在新加坡卖得还不错,由于以前版本的技术有障碍(主要采用WPF技术),目前老板决定投资用比较主流的技术 ...
- Virtualenv介绍
[翻译]http://virtualenv.readthedocs.org/en/latest/index.html virtualenv是创建独立python环境的一种工具. 环境搭建的过程中,有一 ...
- 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序的处理方式
今天客户向我反映一个问题,当他们在用我们的系统导出excel表格时,报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 经过找资料终于得到解决方法,记录一下. 在对应 ...
- Facebook等使用苹果源生分享
1.Facebook官方的SDK分享 2.ShareSDK,第三方集成的分享方式 3.网页分享方式分享 4.IOS6之后,苹果自己集成了对于F ...
- uitableviewcell高度自适应笔记
今天看了几篇uitableviewcell高度自适应的文章,大体分为两种方式. 第一种方式,cell里面有label,在cellforrow绘制的时候计算Label的可能高度,并且在此时重新计算cel ...
- 法线贴图——Normal Mapping
对于不曾学过.用过法线贴图的人来说,提到法线贴图,经常会提到的问题是什么是法线贴图?法线贴图用于解决什么问题?法线贴图的原理是什么?本文将就这三个问题阐述本人的一些见解,各位不喜勿喷!!! 谈到法线贴 ...
- markdown语法学习效果预览
注: 结合markdown官方文档 其中大部分例子和说明文字都摘自官方文档 官方链接:Markdown: Basics (快速入门). 一 段落.标题.区块代码 Markdown 支持两种标题的语法, ...
- Linux:一台apache服务器上部署多个项目的apache配置
第一步: 将代码取到/var/www/html目录下(此为默认目录,具体看apache的设置):该目录下可以放多个项目,如: [root@www html]# pwd/var/www/html[roo ...
- SqlServer 事务和异常处理示例
BEGIN TRANSACTION--开始事务 DECLARE @errorSun INT --定义错误计数器SET @errorSun=0 --没错为0 UPDATE dbo.Test SET te ...
- C# DataGridViewComboBoxColumn 数据绑定
dataGridView1.Columns.Clear(); dataGridView1.AutoGenerateColumns = false; dataGridView1.DataSource = ...