简介
接下来的几篇文章,会对sed做一个系统性的讲解,争取能帮你做到举一反三,学以致用的程度。以下内容会在陆续地文章中涵盖到:
sed的命名,历史等周边信息:帮助你对sed有一个初步的了解sed的功能,何时使用:加深了解sedsed命令的结构,工作方法:从底层去了解sedsed的用法细节:命令选项,地址规范,模式空间,保持空间,分组操作符,分支,工作流控制,多行技巧等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功能强大,对于逻辑较为复杂的改动(如:对需要运算条件逻辑进行判断时),应该选用更高级的语言如awk,bash等;同时,对于特别简单的流编辑,比如查看文件首和文件尾,显然选用head和tail更为合适。总结起来,sed不应该被用于:
- 判定逻辑或修稿操作过于复杂的流编辑
- 有更为简单的替代品的流编辑,比如
head和tail
下一节课:sed命令的结构,底层原理,调试
本文系列将全面解析sed流编辑器,从命名和历史开始,逐步探讨其功能、命令结构和使用场景。sed适用于简单文本处理,如查找、替换和行编辑,尤其适合对文件进行批量修改。不过,对于复杂逻辑和简单任务,awk或其它工具可能更为适用。学习sed需要理解其工作原理并多加练习,避免单纯记忆命令。下文将详细讲解sed的命令结构和底层原理。
417

被折叠的 条评论
为什么被折叠?



