sed 匹配最短模式的方法_sed 跨行 最短 匹配-程序员宅基地

技术标签: sed  shell脚本  shell  最短模式  

目前为止,我们只执行了简单的字符串替换。虽然这很方便,但是我们还可以匹配规则表达式。例如,以下 sed 命令将匹配从 '<' 开始、到 '>' 结束、并且在其中包含任意数量字符的短语。下例将删除该短语(用空字符串替换):
  $ sed -e 's/<.*>//g' myfile.html 
  这是要从文件除去 HTML 标记的第一个很好的 sed 脚本尝试,但是由于规则表达式的特有规则,它不会很好地工作。原因何在? 当 sed 试图在行中匹配规则表达式时,它要在行中查找最长的匹配。 在我的前一篇 sed 文章中,这不成问题,因为我们使用的是 'd' 和 'p' 命令,这些命令总要删除或打印整行。但是,在使用 's///' 命令时,确实有很大不同,因为规则表达式匹配的整个部分将被目标字符串替换,或者,在本例中,被删除。这意味着,上例将把下行:
  <b>This</b> is what <b>I</b> meant. 
  变成: 
  meant. 
  我们要的不是这个,而是: 
  This is what I meant. 

  幸运的是,有一种简便方法来纠正该问题。我们不输入“'<' 字符后面跟有一些字符并以 '>' 字符结束”的规则表达式,而只需输入一个“'<' 字符后面跟有任意数量非 '>' 字符并以 '>' 字符结束”的规则表达式。这将与最短、而不是最长的可能性匹配。

新命令如下:

  $ sed -e 's/<[^>]*>//g' myfile.html 
  在上例中,'[^>]' 指定“非 '>'”字符,其后的 '*' 完成该表达式以表示“零或多个非 '>' 字符”。对几个 html 文件测试该命令,将它们管道输出到 "more",然后仔细查看其结果。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/haoyuedangkong_fei/article/details/53762463

智能推荐

全角半角互相转换_r如何切换全角半角-程序员宅基地

文章浏览阅读185次。【代码】全角半角互相转换。_r如何切换全角半角

02架构管理之研发管理-程序员宅基地

文章浏览阅读178次。研发管理(Research and Development Management,R&D Management)是一种系统性的管理活动,是以产品开发流程为基础的项目管理体系,旨在规划、组织、协调和监督研发项目,对研发项目的人员、计划、质量、成本等进行综合管理,从而打造高效能的研发团队,更好更快地实现项目目标。研发管理的本质是从流程化,标准化,制度化等维度建立管理机制。最终的核心目标是通过管理的法治建立标准化的操作规范,再通过标准化的规范提升人员的协作效率、监督机制、系统稳定性/安全性等。

磁盘访问性能分析及RAID简介_吞吐量和raid关系-程序员宅基地

文章浏览阅读1.3k次。简要介绍了磁盘访问性能相关指标,CPU的交互方式,和RAID_吞吐量和raid关系

塑胶模具报价计算原理方法与程序-程序员宅基地

文章浏览阅读2k次,点赞3次,收藏4次。塑胶类产品的生产依赖于模具(Tooling),曾经为公司做过一个塑胶模具的报价系统。模具的成本,与ERP中的产品成本原理相似,材料费,人工费和制造费用,再加上企业利润,构成基本的价格。 常用的公式如下所示 模具价格=模具材料费+模具加工费+税金+利润 其中材料费占20%~30%,加工费50%~60%;一般模具利润率10%~30%,大型模具利润率20%~35% 模具时间与成本的关系如下 ..._塑胶模报价计算公式

logging模块使用_logging模块ch在生产可以打开吗-程序员宅基地

文章浏览阅读159次。最详细的还是 官方文档最简单的使用# -*- coding:utf-8 -*-import logginglogging.debug('debug message')logging.info('info message')logging.warn('warn message')logging.error('error message')logging.critical('crit..._logging模块ch在生产可以打开吗

千峰web前端入门html+css笔记(一)_千峰web前端开发-程序员宅基地

文章浏览阅读933次。标题描述_千峰web前端开发

随便推点

react 里面的东西居中_react图片居中-程序员宅基地

文章浏览阅读437次。react 里面的东西居中。_react图片居中

zookeeper_zookeeper访问地址-程序员宅基地

文章浏览阅读5.2k次。1.linux下安装完zookeeper之后,进入conf目录编辑zoo.cfg文件,找到dataDir属性更改其路径为zookeeper目录下的zkData文件夹.(因为其默认的目录在Linux下会定清理)(1)进入到zookeeper目录下的bin目录启动zookeeper,使用sh zkServer.sh命令启动zookeeper(或者zkServer.sh start命令启动).(2) 继续在bin目录下使用sh zkCli.sh命令启动zoo..._zookeeper访问地址

windows以G为单位整数分区公式(精准)_win7分盘100g公式-程序员宅基地

文章浏览阅读572次。下面是js的脚本,100G为例:// JS var num = 100Math.ceil(Math.ceil(num*1024/7.84423828125)*7.84423828125)使用方法,只要有浏览器就行,打开浏览器进入开发者模式F12,选择控制台将上面的代码粘贴到控制台中,红字部分为100G应分配的M数.如需其它容量大小自行修改100为对应的值..._win7分盘100g公式

新书推荐|Windows黑客编程技术详解-程序员宅基地

文章浏览阅读70次。《Windows黑客编程技术详解》面向对计算机系统安全开发感兴趣,或者希望提升安全开发水平的读者,以及从事恶意代码分析研究的安全人员。理论技术与实战操作相辅相成,凸显“道与术”庖丁解牛式剖析Windows用户层和内核层黑客技术原理代码兼容性高,支持Windows 7到Windows 10全平台系统近年来,全球大规模爆发勒索病毒和挖..._demongan

【UE4】制作加载图片Splash_ue4 splash image-程序员宅基地

文章浏览阅读5.2k次,点赞7次,收藏18次。很多小伙伴都会有疑惑,有的大神可以有自己独特的加载界面,其实这个编辑过程很简单,今天带大家来一起Try一Try! 长话短说,如果我们不做改变,每一个编辑器加载时的界面都是一样的,那我们怎么样去根据自己的喜好来改变这个logo呢?1.打开虚幻编辑器,项目设置2.项目设置中找到这个更改界面,然后把鼠标放在logo上,我们可以看到这个图片是虚幻自带的文件中原本就默认存在的,那我们就..._ue4 splash image

Acwing算法提高课_acwing提高课-程序员宅基地

文章浏览阅读154次。90%的dp问题都能转化为最短路问题,拓扑图可以转化为dp问题。记住模型,到相似题目就会有更清晰的思路,不会到无从下手。_acwing提高课

推荐文章

热门文章

相关标签