流编辑器sed的系统性讲解 - 第一节(共七节)- sed简介,命名,历史和作用

本文系列将全面解析sed流编辑器,从命名和历史开始,逐步探讨其功能、命令结构和使用场景。sed适用于简单文本处理,如查找、替换和行编辑,尤其适合对文件进行批量修改。不过,对于复杂逻辑和简单任务,awk或其它工具可能更为适用。学习sed需要理解其工作原理并多加练习,避免单纯记忆命令。下文将详细讲解sed的命令结构和底层原理。
摘要由CSDN通过智能技术生成

简介

接下来的几篇文章,会对sed做一个系统性的讲解,争取能帮你做到举一反三,学以致用的程度。以下内容会在陆续地文章中涵盖到:

  • sed的命名,历史等周边信息:帮助你对sed有一个初步的了解
  • sed的功能,何时使用:加深了解sed
  • sed命令的结构,工作方法:从底层去了解sed
  • sed的用法细节:命令选项,地址规范,模式空间,保持空间,分组操作符,分支,工作流控制,多行技巧等
  • sed常见命令总结:一个帮助总结的常用命令清单
  • sed快速学习指南:如果你很忙的话,就只看这里就好

如何学习sed

sed和大多数Linux的命令工具一样,不会的时候觉得很高大上,真正学起来才发现原理并不复杂,好不容易学会之后却又很快就忘了。因此想要学好sed先要克服心里上的先入为主,并且在学会之后,应该经常使用,勤加练习,才不会白白浪费学习时间。希望你能做到以下几点:

  • 认识到sed就仅仅是一个命令行工具而已,其功能甚至不如一个微软Word多,只要系统的学习并且练习,没什么难的
  • 学会之后要在类Unix环境下尽量多的使用,想方设法的使用才能让你对sed愈加熟练
  • 尽管sed用法大全一类的cheatsheet可以帮助你学习sed,但学习sed并不是简单的记命令,而是理解后的举一反三,谨记这一点

sed的命名和历史

sed即Stream Editor (流编辑器)的意思,顾名思义是用来对流进行编辑的工具,这里的指的是I/O流,更直白讲就是对字符串进行操作。比如:echo "hello world" | sed "s/h/H/;s/w/W/"就是把echo向屏幕输出的hello world转化为Hello World(首字母大小写转化)。
sed是由贝尔实验室的Lee E. McMahon在1974年完成初版开发的。Lee已于1989年去世,57岁的他可谓英年早逝,感谢他为sed做出的贡献。
由于sed强大的流编辑能力,使得sed至今仍是很多类Unix系统自带的命令行程序之一。

sed的功能,什么时候使用/不使用

sed可以以行为单位,对每一个的相关内容进行简单的增删查改,最常用的功能有查找,替换,大小写编辑,就地改动等等。因此,sed擅长:

  • 对于整个文件/流,以行为单位的简易修改
  • 对于行内的相关信息的简易修改(如:替换)

即便sed功能强大,对于逻辑较为复杂的改动(如:对需要运算条件逻辑进行判断时),应该选用更高级的语言如awkbash等;同时,对于特别简单的流编辑,比如查看文件首和文件尾,显然选用headtail更为合适。总结起来,sed不应该被用于:

  • 判定逻辑或修稿操作过于复杂的流编辑
  • 有更为简单的替代品的流编辑,比如headtail

下一节课sed命令的结构,底层原理,调试

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值