删除命令是d,应该是取了delete操作的第一个字母吧。
使用的时候可以加入寻址地址的方式,找到要删除的行,我们还是用以下的测试数据
比如我们现在要删除掉第三行那个异类,那么我们可以执行 sed '3d' testfile
如果你没有指定行的话,那么将会默认流中的数据都会被删掉,例如sed 'd' testfile ,也不用截图了,因为什么都没有
比较常见的可能就是删除一个行的区间 sed '2,5d' testfile
其实和之前的的替换一样,使用'$',意思是到文件末尾,sed '3,$d' testfile
那么你觉得这条是什么意思呢?sed '$d' testfile ,好吧,就是把最后一条记录删除啦。
一般我们也不知道要删除哪一行,所以模式匹配还是比较实用的 sed '/dog2/d' testfile
为了测试删除空行的功能,我在测试文件中加入一些空行,如下:
然后我要去掉这些空行,可以使用sed '/^$/d' filename.txt或者sed '/./!d' filename.txt
和替换一样,功能比较强大的就是正则表达式的匹配啦 ,比如 sed '/^The/d' testfile 执行后就是那几行空行啦。
NOTE:sed编辑器不会修改原始文件。你删除的行只是从sed编辑器的输出中消失了。