sed c替换指定行

您所在的位置:网站首页 sed指定行数替换 sed c替换指定行

sed c替换指定行

2024-07-10 00:26| 来源: 网络整理| 查看: 265

sed 提供了单字母命令 c 用来完成 变更 或 替换 的操作。

c 是 change 的首字母,后者是 变更 的意思。

我们这里说的变更 或 替换 并不是替换几个字符,而是把 符合条件的行替换为新行。

如果指定的条件是 行范围,则会把 从开始行到结束行都替换为新行。

单字母命令 c 的语法格式如下

[address1[,address2]] c Replace text

苹果电脑自带的 sed 的只支持以下语法

[address1[,address2]]c\ Replace text

address1 和 address2 是 行寻址 的开始行和结束行

c 是替换命令

Replace text 替换后的数据

苹果电脑自带的 sed 的 c 后面跟着一个 正斜杠(\),然后是一个 回车,然后才是要替换的内容

范例

范例开始前,我们先准备要用的数据,先在当前目录下新建一个文件 data.txt 内容如下

1) 小明,23岁,北京大学 2) 小红,22岁,清华大学 3) 小李,25岁,斯坦福大学 4) 小王,22岁,清华大学 5) 小刚,27岁,北京大学 6) 小英,21岁,哈佛大学

下面的范例,把第二行替换为 7) 小陈,22岁,哈工大

[www.twle.cn]$ sed '2 c 7) 小陈,22岁,哈工大' data.txt

运行结果如下

1) 小明,23岁,北京大学 7) 小陈,22岁,哈工大 3) 小李,25岁,斯坦福大学 4) 小王,22岁,清华大学 5) 小刚,27岁,北京大学 6) 小英,21岁,哈佛大 模式寻址

sed 的替换命令 c 除了使用 行号 寻址外,还可以使用 模式寻址。

模式寻址和之前我们学习的使用语法语法一样

范例

下面的命令,我们使用 模式寻址,将包含 小红 的行替换为 7) 小陈,22岁,哈工大。

[www.twe.cn]$ sed '/小红/ c 7) 小陈,22岁,哈工大' data.txt

运行结果如下

1) 小明,23岁,北京大学 7) 小陈,22岁,哈工大 3) 小李,25岁,斯坦福大学 4) 小王,22岁,清华大学 5) 小刚,27岁,北京大学 6) 小英,21岁,哈佛大 多行替换

sed 还支持多行替换为新的一行。

简单的说,就是使用 行寻址 将指定范围的行替换为新的单行。

从某些方面说,就是使用使用 行寻址 将指定范围的行删除,然后插入一个新行。

多行替换的语法格式如下

address1,address2 c Replace text

苹果电脑自带的 sed 的只支持以下语法

address1,address2 c\ Replace text

address1 和 address2 是 行寻址 的开始行和结束行

c 是替换命令

Replace text 替换后的数据

苹果电脑自带的 sed 的 c 后面跟着一个 正斜杠(\),然后是一个 回车,然后才是要替换的内容

范例

下面的范例,我们将 2-4 行替换为一个新行 7) 小陈,22岁,哈工大

[www.twle.cn]$ sed '2, 4 c 7) 小陈,22岁,哈工大' data.txt

运行结果如下

1) 小明,23岁,北京大学 7) 小陈,22岁,哈工大 5) 小刚,27岁,北京大学 6) 小英,21岁,哈佛大学


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3