与我们常见的所见即所得的编辑器不同,sed 是指令型编辑器。你告诉 sed 需要如何操作,然后闭着眼睛即可完成操作。当我们所处的环境没法调用 vim 、图形化编辑器时,sed 可以使用批处理的方式编辑文件。
编辑器中常用的操作:插入、删除、替换,这些操作在 sed 中都很容易实现。我们下面以例子的形式展开。
操作1:在指定行插入文本
sed -i '2 a
示例1
示例2
示例3' file
以上例子在第2行之后插入了三行文本,插入前后对照如下:
操作2:将指定行替换为新的内容
sed -i '2 {
i
示例1
示例2
示例3
d
file
以上例子与上一个相同,只是多了一个删除操作。起到的作用是清空原来行的内容,插入新的内容。
操作3:在行首插入#作为注释
's/(.{,1})/#1/' test.sed sed -i
操作4:删除行首#注释
's/^(#{1})//' test.sed sed -i
操作5:在行中指定位置,插入一段内容
'2 s/^(.{2})/1插入一段文本 /' file sed -i
以上例子所做的操作为:在第2行,第2个字符处插入一段文本。
以上几个例子演示了使用 sed 对文件进行插入、删除、替换。其中行内的删除、插入实际上使用的实际是替换。
最后一个例子使用了正则表达式中的标签引用,即使用 1 代表之前正则表达式中匹配的内容。这样可以将老的内容在引用的基础上替换成新的内容,而不是被全新内容替换。
对于比较长的命令,可以将 sed 命令写入到 sed 脚本中,通过 -f 调用脚本。
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。
原文始发于微信公众号(生有可恋):sed 流式编辑器的基本操作
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论