sed 1 简介

sed(意为流编辑器,源自英语“stream editor”的缩写)是Unix常见的命令行程序。sed 用来把文档或字符串里面的文字经过一系列编辑命令转换为另一种格式输出。sed通常用来匹配一个或多个正则表达式的文本进行处理。

以上,是 sed 在维基百科上的简介。

sed 是非交互式的面向数据流的编辑器。之所以说它时面向数据流的,是因为像很多 Unix 程序一样,输入通过程序被重定向到标准输出。输入通常来自文件,但也可以来自键盘。输出默认时发送到终端屏幕,但也可以重定向到文件。sed 可以通过解释脚本来工作,该脚本中指定了将要执行的动作。

sed 提供的功能好像是交互式文本编辑器的自然扩展。例如,它提供可以全局地应用到单个或一组文件的搜索替换功能。尽管我们通常不会使用 sed 去修改指定文件中的仅出现一次的条目,但我们会发现使用它对许多文件进行一系列修改时是很有用的。考虑一下,几分甚至数秒钟之内在一百多个文件中进行 20 个不同的编辑,你就可以想象 sed 的强大了。

使用 sed 类似于编写简单的 shell 脚本。我们可以依次指定将要执行的一系列行为。这些行为中的大部分可以在 vi 中手动地完成,比如:替换文本、删除某行、插入新文本等等。而 sed 的优势在于我们可以在一处(一个 sed 脚本中)指定所有的编辑命令,然后逐条执行它们。我们不必进入到每个文件中做修改。sed 同样可以有效地编辑非常大的、在使用交换式文本编辑器编辑时会很慢的文件。

在创建和维护文档的过程中有很多机会使用 sed,尤其是当文档由单独的章节组成,每一章放在分隔的文件中时。特别是,比如一个文件稿本在评审之后,有很多变更可能要应用到所有文件中。例如,在软件文档化项目中,软件的名称或它的组件可能会变更,我们需要追查和进行修改,使用 sed,就可以很简单地进行处理。

sed 可以用于实现整个文档的一致性。我们可以查找一个特定条目的所有不同的使用方式并把它们变成完全一致。例如,使用 ASCII 字符码替换前后双引号(弯引号“”而不是直引号"")时,就可以使用 sed。

sed 具有几个基本的可以用于构建更复杂脚本的编程结构。它同样也有同时只能编辑一行的限制。

总的来说,我们可以使用 sed 做如下操作:

  1. 自动化地编辑一个或多个文件
  2. 简化在多个文件中执行相同编辑的任务
  3. 编写转换程序

本文参考自 《Linux Shell命令行及脚本编程实例详解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,214评论 2 33
  • 本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称...
    mylxsw阅读 4,416评论 3 74
  • sed与awk实例 文本间隔 在每一行后面增加一空行 将原来的所有空行删除并在每一行后面增加一空行。这样在输出的文...
    stuha阅读 1,912评论 0 21
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,519评论 9 467
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,119评论 0 0