shell学习之sed操做

比起用交互的文本编辑,还有不少命令能够用。好比sed为流编辑器(Stream Edit),一个流字,这个逼格就上去了。html

sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并无改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操做;编写转换程序等。编辑器

sed编辑器只需对数据流进行一遍处理就能够完成编辑操做。使得sed编辑器要比交互式编辑器快得多,你能够快速完成对数据的自动修改。this

能够看到流编辑器会在编辑器处理数据以前基于预先提供的一组规则来编辑数据流。spa

sed命令的格式以下:命令行

还有参数和动做说明,我在菜鸟教程那截图一张3d

默认状况下,sed编辑器会将指定的命令应用到STDIN输入流上。这样你能够直接将数据通 过管道输入sed编辑器处理。htm

echo "this is the world" | sed 's/world/big world/' blog

输出:this is the big world教程

若是后面接的文件,那么操做的就是文件内每行的数据,好比:sed 's/world/big world/'  testfile 会输出,可是文件内容是不会改的。ip

要在sed命令行上执行多个命令时,只要用-e选项就能够了。

好比:sed 's/world/big world/ ;s/this/that/' testfile

两个命令都做用到文件中的每行数据上。命令之间必须用分号隔开,而且在命令末尾和分号之间不能有空格。

若是有大量要处理的sed命令,那么将它们放进一个单独的文件中一般会更方便一些。 能够在sed命令中用-f选项来指定文件。

sed -f script1 testfile

来看看增删改

陷在testfile文件中加入几行数据

删除某几行 sed '2,5d' testfile 

增长某几行数据,sed '2a hello xin' testfile

替换行,sed '2,5c I am cool!' testfile 

也能够用来查询sed '/dog/p'  testfile ,固然我仍是比较喜欢grep

参考:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html

https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html

相关文章
相关标签/搜索