与我们常见的所见即所得的编辑器不同,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 流式编辑器的基本操作
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论