- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用线程--sed实例
通用线程 -- sed 实例
在本文章系列中,Daniel Robbins 将为您演示如何使用功能十分强大(但常被
遗忘)的 UNIX 流编辑器 sed。sed 是用批处理方式编辑文件或以十分有效的方
式创建 shell 脚本以修改现有文件的理想工具。
挑选编辑器
在 UNIX 世界中有很多文本编辑器可供我们选择。思考一下-- vi、emacs 和 jed 以及很多其
它工具都会浮现在脑海中。我们都有自己已逐渐了解并且喜爱的编辑器(以及我们喜爱的组
合键)。有了可信赖的编辑器,我们可以轻松处理任何数量与 UNIX 有关的管理或编程任务。
虽然交互式编辑器很棒,但却有其限制。尽管其交互式特性可以成为强项,但也有其不足之
处。考虑一下需要对一组文件执行类似更改的情形。您可能会本能地运行自己所喜爱的编辑
器,然后手工执行一组烦琐、重复和耗时的编辑任务。然而有一种更好的方法。
进入 sed
如果可以使编辑文件的过程自动化,以便用 “批处理”方式编辑文件,甚至编写可以对现有
文件进行复杂更改的脚本,那将太好了。幸运的是,对于这种情况,有一种更好的方法 --
这种更好的方法称为 sed。
sed 是一种几乎包括在所有 UNIX 平台(包括 Linux)的轻量级流编辑器。sed 有许多很好
的特性。首先,它相当小巧,通常要比您所喜爱的脚本语言小很多倍。其次,因为 sed 是
一种流编辑器,所以,它可以对从如管道这样的标准输入接收的数据进行编辑。因此,无需
将要编辑的数据存储在磁盘上的文件中。因为可以轻易将数据管道输出到 sed,所以将 sed
用作强大的 shell 脚本中长而复杂的管道很容易。试一下用您所喜爱的编辑器去那样做。
GNU sed
对 Linux 用户来说幸运的是,最好的 sed 版本之一恰好是 GNU sed,其当前版本是3.02。
每一个 Linux 发行版都有(或至少应该有)GNU sed。GNU sed 之所以流行不仅因为可以自
由分发其源代码,还因为它恰巧有许多对 POSIX sed 标准便利、省时的扩展。另外,GNU
没有 sed早期专门版本的很多限制,如行长度限制 -- GNU 可以轻松处理任意长度的行。
必威体育精装版的 GNU sed
在研究这篇文章之时我注意到:几个在线 sed 爱好者提到 GNU sed 3.02a。奇怪的是,在
(有关这些链接,请参阅参考资料)上找不到 sed 3.02a,所以,我只得在别
处寻找。我在 的 /pub/sed 中找到了它。于是我高兴地将其下载、编译然
后安装,而几分钟后我发现必威体育精装版的 sed 版本却是 3.02.80 -- 可在 上
3.02a 源代码旁边找到其源代码。安装完 GNU sed 3.02.80 之后,我就完全准备好了。
正确的 sed
在本系列中,将使用 GNU sed 3.02.80。在即将出现的本系列后续文章中,某些 (但非常少)
最高级的示例将不能在 GNU sed 3.02 或 3.02a 中使用。如果您使用的不是 GNU sed,那
么结果可能会不同。现在为什么不花些时间安装 GNU sed 3.02.80 呢?那样,不仅可以为
本系列的余下部分作好准备,而且还可以使用可能是 目前最好的 sed。
sed 示例
sed 通过对输入数据执行任意数量用户指定的编辑操作( “命令”)来工作。sed 是基于行
的,因此按顺序对每一行执行命令。然后,sed 将其结果写入标准输出 (stdout),它不修
改任何输入文件。
让我们看一些示例。头几个会有些奇怪,因为我要用它们演 sed 如何工作,而不是执行任
何有用的任务。然而,如果您是 sed新手,那么理解它们是十分重要的。下面是第一个示例:
$ sed -e d /etc/services
如果输入该命令,将得不到任何输出。那么发生了什么?在该例中,用一个编辑命令 d
调用 sed。sed 打开 /etc/services 文件,将一行读入其模式缓冲区,执行编辑命令 (“
删除行”),然后打印模式缓冲区 (缓冲区已为空)。然后,它对后面的每一行重复这些步
骤。这不会产生输 出,因为 d 命令除去了模式缓冲区中的每一行 !
在该例中,还有几件事要注意。首先,根本没有修改/etc/services。这还是因为 sed 只读
取在命令行指定的文件,将其用作输入--它不试图修改该文件。第二件要注意的事是 sed
是面向行的。d命令不是简单地告诉sed 一下子删除所有输入数据。相反,sed逐行将
/etc/se
您可能关注的文档
- 迁移到WindowsAzure.PDF
- 迄今为止,培训已经有一段时间了,在这些日子里,感谢各.doc
- 迈阿密-西礁岛-大沼泽-西棕榈滩-罗德岱堡浪漫5日游佛州旅.PDF
- 迈锐宝XL车辆配置表.PDF
- 运作情形与上市上柜公司诚信经营守.PDF
- 过年才有的年味小吃,第一种饿了吃,第三种好吃又脆.pdf
- 转移强积金时,.PDF
- 运用损伤力学理论预测沥青混合料的疲劳性能.pdf
- 运用气逆三脏辨证论治胃食管反流病.pdf
- 运算放大器的噪声分析.PDF
- 人教版一年级数学下册课件-第6课时 解决问题(2).ppt
- 人教版一年级数学下册课件-第2课时 找规律(2).pptx
- 人教版一年级数学下册课件-第5课时 解决问题(1).ppt
- 人教版一年级数学上册课件-八、5解决问题(2).pptx
- 人教版一年级数学上册课件-九、3认识钟表.pptx
- 人教版一年级数学上册课件-一、2比多少.pptx
- 人教版小学一年级数学课件-两位数加一位数(进位).ppt
- 人教版一年级数学上册-第5课时解决问题(减法)(课时课件).ppt
- 人教版一年级数学上册-第1课时11-20各数的认识(课时课件).ppt
- 人教版一年级数学下册课件-第7课时 用同数连加解决问题.pptx
最近下载
- 高中数学知识点灵活运用-2024高考数学选择题答题技巧.pdf
- 建设工程造价咨询成果文件质量标准.docx
- 煤矿安全风险分级管控和隐患排查治理双重预防机制建设.pdf VIP
- 2019-2025年中国纳米碳酸钙市场运行态势及行业发展前景预测报告.docx
- 审计师培训讲义(94页).pdf
- 《煤矿电钳工》课件.ppt VIP
- 施工降水工程量确认单 - 副本.doc
- 机械设计工程师含(见习机械设计工程师)技术资格认证考试培训.doc VIP
- 2024-2030年中国全谷物食品行业市场深度研究及投资规划建议报告.docx
- 国标建筑专业图集 - 08J925-3 压型钢板、夹芯板屋面及墙体建筑构造(三).pdf
文档评论(0)