sed 插入命令 i
sed 提供了单字母命令 i
用来完成 插入 操作。
i
是 insert
的首字母,后者是 插入 的意思。
我们这里说的插入 并不是在某行中间插入几个字符,而是在 符合条件的行之前面插入新行。
这个 插入 操作和我们之前学习的 追加命令 a 功能一样。
唯一的不同是 插入操作是在指定行之前插入一个新行,追加操作是在指定的行后面追加新行。
单字母命令 i
的语法格式如下
[address] i Insert text
苹果电脑自带的 sed 的只支持以下语法
[address]i\ Insert text
-
address
是 行寻址,用于指定插入的位置。 -
i
是插入命令 -
Insert text 是要插入的新行
-
苹果电脑自带的 sed 的
i
后面跟着一个 正斜杠(\
),然后是一个 回车,然后才是要插入的数据
范例
范例开始前,我们先准备要用的数据,先在当前目录下新建一个文件 data.txt
内容如下
1) 小明,23岁,北京大学 2) 小红,22岁,清华大学 3) 小李,25岁,斯坦福大学 4) 小王,22岁,清华大学 5) 小刚,27岁,北京大学 6) 小英,21岁,哈佛大学
下面的命令,我们在第 4 行之前插入一条新数据 7) 小陈,22岁,哈工大
[www.twle.cn]$ sed '4 i 7) 小陈,22岁,哈工大' data.txt
运行结果如下
1) 小明,23岁,北京大学 2) 小红,22岁,清华大学 3) 小李,25岁,斯坦福大学 7) 小陈,22岁,哈工大 4) 小王,22岁,清华大学 5) 小刚,27岁,北京大学 6) 小英,21岁,哈佛大
在文件开头插入新行
因为插入操作是在指定的行之前。如果我们将行指定为 1
,那么就会在文件开头插入新行。
范例
下面的命令,我们在文件开头插入一条新数据 7) 小陈,22岁,哈工大
[www.twle.cn]$ sed '1 i 7) 小陈,22岁,哈工大' data.txt
运行结果如下
7) 小陈,22岁,哈工大 1) 小明,23岁,北京大学 2) 小红,22岁,清华大学 3) 小李,25岁,斯坦福大学 4) 小王,22岁,清华大学 5) 小刚,27岁,北京大学 6) 小英,21岁,哈佛大学
插入多行
sed 的 插入命令 允许插入多行。多行的之间的分隔符为 反斜杠(\
)。除了第一行外,其它行必须在独立的一行。
sed 插入多行的语法格式为
[address] i Insert text\ Insert text2\ Insert text3
范例
下面的范例,我们在最后一行前插入多行
[www.twle.cn]$ sed '$ i \ 7) 小陈,22岁,哈工大\ 7) 小陈,22岁,哈工大\ 7) 小陈,22岁,哈工大 ' data.txt
运行结果如下
1) 小明,23岁,北京大学 2) 小红,22岁,清华大学 3) 小李,25岁,斯坦福大学 4) 小王,22岁,清华大学 5) 小刚,27岁,北京大学 7) 小陈,22岁,哈工大 7) 小陈,22岁,哈工大 7) 小陈,22岁,哈工大 6) 小英,21岁,哈佛大学