sed
(流编辑器)是一个强大的文本处理工具,在Unix和类Unix系统中广泛用于对输入流(如文件或管道中的数据)进行逐行编辑。关于sed
的插入操作,主要包括两种方式:
在特定行前插入文本:
使用i
命令可以在指定行之前插入新的文本。格式如下:sed '行号i 新文本' 文件名
例如,要在第2行前插入一行文本
xxx
:sed '2i xxx' filename.txt
这将会在原文件的第2行之前插入一行文本
xxx
。在特定行后插入文本:
使用a
命令可以在指定行之后插入新的文本。格式如下:sed '行号a 新文本' 文件名
同样,如果要在第2行后插入一行文本
xxx
:sed '2a xxx' filename.txt
这将在原文件的第2行之后插入一行文本
xxx
。
如果你想要在一定范围内(比如从第2行到第3行)的所有行后面都插入文本,可以这样写:
sed '2,3a 新文本' filename.txt
如果需要直接修改原文件,而不是仅在屏幕上显示修改结果,可以加上 -i
选项以实现就地编辑:
sed -i '行号i 新文本' 文件名
sed -i '行号a 新文本' 文件名
这里的新文本
不需要用反斜杠\
来分隔,但若文本中有特殊字符或正则表达式元字符,可能需要转义它们以免被sed
解析为特殊含义。此外,行号
可以是具体的数字,也可以是一个模式(即与某行内容匹配的正则表达式)。