首页 > 服务器学习 > Linux > bash中的流编辑器sed命令
2016
12-16

bash中的流编辑器sed命令

sed命令是一种几乎包括在所有UNIX(当然也包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令

sed和vim不同之处在于sed不仅可以编辑文件当中的内容,还可以修改命令运行时的标准输出流的内容,而vim想要修改就必须先把命令的输出结果写入到文件当中再修改文件内容。

sed [选项] '[动作]' 文件名

-n:一般set命令会把所有的数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕上。

-e:允许对输入的数据应用多条sed命令编辑,多个命令用分号";"分隔

-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出

动作(所有的动作在不加-i选项时都是只针对输出,不会对原文件进行修改):

na 内容:追加内容到第n行的后一行

ni 内容:插入:在第n行行前插入内容

n,md:删除,删除第n行到第m行

nd:删除,删除第n行

/正则/d:删除指定包含内容的行,如删除以Love开头的行sed -i '/^Love/d' 1.txt,删除包含Love的行sed -i '/Love/d' 1.txt

np:打印,输出指定的第n行

nc 内容:行替换,用内容替换第n行整行

s:字串替换,用一个字符串替换另一个字符串,格式为"行范围s/旧字串/新字串/g",行范围为空时替换文档中所有的指定字符串。

当命令的内容为多行时,除最后一行外,每行末尾需要用"\"代表数据未完结

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。