博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习Grep,Sed中的正则 | 火丁笔记
阅读量:6046 次
发布时间:2019-06-20

本文共 993 字,大约阅读时间需要 3 分钟。

 

学习Grep,Sed中的正则

 

正则要是几天不学习不用功,肯定会忘得一干二净,下面聊聊Grep,Sed中的正则。

 

问题:从一个文本文件里筛选出含有电话号码的行,电话号码是由七位或者八位阿拉伯数字组成(开头不是零),并且被单引号或者双引号包裹。

鉴于问题的需要,先杜撰一份数据:

shell> cat /path/to/data.txt'7654321''7654321""87654321""87654321'

失败的尝试

shell> grep "(['\"])[1-9][0-9]{6,7}\1" /path/to/data.txtgrep: Invalid back referenceshell> sed -n "/(['\"])[1-9][0-9]{6,7}\1/p" /path/to/data.txtsed: -e expression #1, char 25: Invalid back reference

成功的尝试

使用Basic Regular Expressions (BRE)

shell> grep "\(['\"]\)[1-9][0-9]\{6,7\}\1" /path/to/data.txt'7654321'"87654321"shell> sed -n "/\(['\"]\)[1-9][0-9]\{6,7\}\1/p" /path/to/data.txt'7654321'"87654321"

使用Extended Regular Expressions (ERE)

shell> grep -E "(['\"])[1-9][0-9]{6,7}\1" /path/to/data.txt'7654321'"87654321"shell> sed -n -r "/(['\"])[1-9][0-9]{6,7}\1/p" /path/to/data.txt'7654321'"87654321"

总结:Grep和Sed同时支持BRE和ERE两种正则,缺省情况下,Grep和Sed使用的都是BRE正则,通过增加命令参数(grep -E / sed -r),Grep和Sed可以支持ERE正则。

BTW:

 

This entry was posted in and tagged , , , , by . Bookmark the .

 

转载地址:http://xenex.baihongyu.com/

你可能感兴趣的文章
Hibernate 持久化对象的状态
查看>>
ClewareControl 2.4 发布,传感器控制程序
查看>>
fzu 2056(二分查找)
查看>>
执行SQL语句,返回新插入的主键值
查看>>
a标签弹出 文件上载框
查看>>
非windows下 php连接mssql FreeTDS配置
查看>>
解决actionSheet在iOS4.3中不能正常使用的问题
查看>>
学习之路二十九:泛型和委托在重构中的运用
查看>>
iOS 响应链
查看>>
节点利用js的Node 遍历找到repeater的一个字段 实例
查看>>
C编译: makefile基础
查看>>
5个jQuery的备选轻量级移动客户端开发(Mobile development)类库
查看>>
继承虚函数单层需继承的内存图(VC6.0)
查看>>
hdu 2149+hdu 1846(巴什博弈)
查看>>
Google免费的SVN服务器管理VS2010代码
查看>>
Spring_集合装配
查看>>
点阵字体, 矢量字体
查看>>
中断详细分析
查看>>
Integer.valueof() Integer.parseInt()
查看>>
python数字图像处理(15):霍夫线变换
查看>>