sed 读文件命令 r

sed 支持读取其它文件的内容,并在符合条件时显示它们。

为了完成这个操作,sed 提供了单字母 r 命令用于读取其它文件的内容。

rread 的缩写,后者翻译为中文是 读取 的意思。

r 命令的使用语法格式如下

[address1[,address]]r file
  • address1address2 用于 行寻址,可以是行号或者模式。

    注意: 苹果电脑自带的 sed 不支持区间寻址。

  • r 是读文件命令

  • file 是要读取的命令

注意: r 命令和 file 参数之间必须有一个空格。

范例

范例开始前,我们先准备下范例需要使用的数据。

首先创建文件 data.txt 内容如下

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

然后再准备一个 r 命令要读取的文件 demo.txt 内容如下

Hello   World   Yufei
Hello   www.twle.cn sed

最后,我们就可以使用 l 命令再第三行后面插入其它文件 demo.txt 中的内容

[www.twle.cn]$ sed '3 r demo.txt' data.txt

运行结果如下

1) 小明,23岁,北京大学
2) 小红,22岁,清华大学
3) 小李,25岁,斯坦福大学
Hello   World   Yufei
Hello   www.twle.cn sed4) 小王,22岁,清华大学
5) 小刚,27岁,北京大学
6) 小英,21岁,哈佛大学

范例2

l 命令还支持 行范围 寻址。

我们可以通过 行范围 寻址的方式,在符合条件的行范围内的每一行都插入另一个文件的内容

例如下面的命令在 [3,5] 区间内的每一行都插入另一个文件的内容

[www.twle.cn]$ sed '3, 5 r demo.txt' data.txt

运行结果如下

1) 小明,23岁,北京大学
2) 小红,22岁,清华大学
3) 小李,25岁,斯坦福大学
Hello   World   Yufei
Hello   www.twle.cn sed4) 小王,22岁,清华大学
Hello   World   Yufei
Hello   www.twle.cn sed5) 小刚,27岁,北京大学
Hello   World   Yufei
Hello   www.twle.cn sed6) 小英,21岁,哈佛大学

范例3

和其它命令一样,我们的 r 命令同样支持 模式寻址

例如下面的命令,我们通过模式寻址来显示包含 小李 的行,并在该行后面插入另一个文件的内容

[www.twle.cn]$  sed '/小李/ r demo.txt' data.txt

运行结果如下

1) 小明,23岁,北京大学
2) 小红,22岁,清华大学
3) 小李,25岁,斯坦福大学
Hello   World   Yufei
Hello   www.twle.cn sed4) 小王,22岁,清华大学
5) 小刚,27岁,北京大学
6) 小英,21岁,哈佛大学
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.