sed入门详解教程
Posted 肖邦linux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed入门详解教程相关的知识,希望对你有一定的参考价值。
sed是一个比较古老的,功能十分强大的用于文本处理的流编辑器,加上正则表达式的支持,可以进行大量的复杂的文本编辑操作。sed本身是一个非常复杂的工具,有专门的书籍讲解sed的具体用法,但是个人觉得没有必要去学习它的每个细节,那样没有特别大的实际意义。网上也有很多关于sed的教程,我也是抱着学习的心态来学习sed的常见的用法,并进行系统的总结,内容基本覆盖了sed的大部分的知识点。文中的内容比较简练,加以实际示例来帮助去理解sed的使用。
sed介绍
sed全名为stream editor,流编辑器,用程序的方式来编辑文本,功能相当的强大。是贝尔实验室的Lee E.McMahon在1973年到1974年之间开发完成,目前可以在大多数操作系统中使用,sed的出现作为grep的继任者。与vim等编辑器不同,sed是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑指令对输入的文本进行编辑,完成之后再输出编辑结构。sed基本上就是在玩正则模式匹配,所以,玩sed的人,正则表达式一般都比较强。
sed工作原理
sed会一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,成为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
正则表达式概念
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具,换句话说,正则表达式就是记录文本规则的代码。许多程序设计语言都支持利用正则表达式进行字符串操作。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
正则表达式的匹配过程
简单描述一下正则表达式的匹配过程,就是拿正则表达式所表示的字符串去和原文字符串内容去匹配,直到匹配到原文内容字符串中的一个完整子串就表示匹配成功。举个例子,有一行文件内容”this is better desk”,这里用“esk”去匹配,匹配过程是这样的:首先拿e去匹配文件行内容,从this开始,直到better的e,第一个字符匹配成功,接着s去匹配better字符e后边的t字符,没有匹配成功;然后重新拿esk中的e去和better的第二个t去匹配,没有成功,接着原始内容的下一个字符,直到desk中的e字符,逐个匹配s,k字符,到此为止,esk成功匹配,正则表达式匹配完毕,整个过程就是这样,即使再复杂的正则表达式的匹配过程也是按照此过程来进行的。
以上是关于sed入门详解教程的主要内容,如果未能解决你的问题,请参考以下文章