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 的成名杀手锏。
- 过滤或选择输出文件内容。
- 一次性编辑多个文件。
- 非交互式处理多个文件。