02、sed 简介

sed,英文全称 stream editor ,是一种非交互式的流编辑器,通过多种转换修改流经它的文本。

sed可以对文字的增删改替换查( 过滤、取行 ),能同时处理多个文件多行的内容。

sed与 awk 并称为 Linux/Unix 世界的两大王牌文字处理器。

sed与 awk 一样,都是行文字处理器。

awk侧重点是分割和重新合成。而 sed 的侧重点是替换。

sed命令是一个面向字符流的非交互式编辑器,也就是说 sed 不允许用户与它进行交互操作。

sed一般内置于现代的所有 Linux / Unix 系统,比如 苹果电脑Ubuntu 系统CentOS 系统。成为现代操作系统除 Windows 之外必备的工具之一。

说句大实话,sed 学会了会让很多工作事半功倍,但真实的情况是一般人用的次数少之又少。

sed学会了精通了的最大作用,估计就是在面试的简历里写上 精通 sed。这个可是大大的加分项啊。

这代表了什么 ? 代表了你是一个爱学习的孩子啊...

sed 的前世今生

sed是一个 70 后,诞生于 1973 - 1974 年间,具体时间未知。而出生地则是鼎鼎大名的 贝尔实验室

sed是 麦克马洪 ( McMahon ) 老爷子在 贝尔实验室 时开发出来的。

sed的诞生使并不是那么的神秘,它的诞生只不过是 麦克马洪 ( McMahon ) 老爷子想写一个 行编辑器,谁知写着写着就写成了 sed 的样子。

其实,在 sed 之前还有一个更古老的行编辑器,名字叫做 ed 编辑器。大概是 麦克马洪 ( McMahon ) 老爷子觉得 ed 编辑器不好用吧,顺手重新构架和编写。

所以,如果你熟悉 ed 命令 ( ed 命令还存在的,是 Linux/Unix 系统的内置命令行工具之一 )的语法,就会发现两者非常相似。因为 sed 是站在 ed 的基础上啊,只不过多了一个 s 字符而已。

在sed 成名之前,更知名的其实是 ed,而 ed 的成名,则是因为它使用正则表达式来处理文字。抄作业肯定要全抄啊,sed 诞生之日就具备了正则表达式功能,也正因为正则表达式的强大,成就了 sed 的辉煌。

sed的成名的另一大原因,是紧紧围绕着 Linux/Unix 的新特性发展。从一开始的 Unix 支持标准输入输出的时候,sed 就支持从标准输入中读取内容,支持从文件中读取内容。而 Unix 发展出举世闻名的管道功能的时候,sed 就紧接着支持管道功能,管道功能则是把 sed 推向了目前的王者宝座。

sed由 自由软件基金会 ( 英文全称 Free Software Foundation,英文简称 FSF )开发与维护。由 GNU/Linux 分发,因此也常常被称为 GNU SED

不管是新手还是老手,见到 sed 或 awk 都会感到头疼,觉得它们的语法很神秘。但是,一旦熟悉了 sed 的语法,就能使用几行简单的 sed 代码来解决很多很复杂的任务。简直就是 美艳而高冷

sed 典型使用场景

sed是一个万能的行文字处理器,学会了它简直就像练成了 独孤九剑,啥招式都能破。

sed的常见使用场景有:

  • 面试。学会了 sed 带来的最大好处,提高面试通过率,提高薪资档次。
  • 文字替换。 sed 的成名杀手锏。
  • 过滤或选择输出文件内容
  • 一次性编辑多个文件
  • 非交互式处理多个文件