Linux sed在某一行前面、后面追加(转载)

简介: 如果知道行号可以用下面的方法sed -i '88 r b.file' a.file在a.txt的第88行插入文件b.txtawk '1;NR==88{system("cat b.

如果知道行号可以用下面的方法

sed -i '88 r b.file' a.file

在a.txt的第88行插入文件b.txt

awk '1;NR==88{system("cat b.file")}'
a.file > a.file

如果不知道行号,可以用正則匹配

sed -i '/regex/ r b.txt' a.txt # regex是正则表达式
awk '/target/{system("cat b.file")}'
a.file > c.file

sed的話如果不改变源文件,可以去掉-i开关,修改会输出到STDOUT

原文件:
[root@xiaowu shell]# cat -n file
1 aaaa
2 bbbb
3 cccc
4 dddd

现在要在第二行即“bbbb”行的下面添加一行,内容为“xiaowu”
[root@xiaowu shell]# sed '/bbbb/a\xiaowu' file
aaaa
bbbb
xiaowu
cccc
dddd

如果要加两行“xiaowu”可以用一下语句,注意用“\n”换行
[root@xiaowu shell]# sed '/bbbb/a\xiaowu\nxiaowu' file
aaaa
bbbb
xiaowu
xiaowu
cccc
dddd

如果要在第二行即“bbbb”行的上添加一行,内容为“xiaowu”,可以把参数“a”换成“i”
[root@xiaowu shell]# sed '/b/i\xiaowu' file
aaaa
xiaowu
bbbb
cccc
dddd

以上文件中只有一行匹配,如果文件中有两行或者多行匹配,结果有是如何呢?

[root@xiaowu shell]# cat -n file
1 aaaa
2 bbbb
3 cccc
4 bbbb
5 dddd

[root@xiaowu shell]# sed '/bbbb/a\xiaowu' file
aaaa
bbbb
xiaowu
cccc
bbbb
xiaowu
dddd

由结果可知,每个匹配行的下一行都会被添加“xiaowu”

那么如果指向在第二个“bbbb”的下一行添加内容“xiaowu”,该如何操作呢?
可以考虑先获取第二个“bbbb”行的行号,然后根据行号在此行的下一行添加“xiaowu”

获取第二个“bbbb”行的行号的方法:
方法一:
[root@xiaowu shell]# cat -n file |grep b |awk '{print $1}'|sed -n "2"p
4
方法二:
[root@xiaowu shell]# sed -n '/bbbb/=' file |sed -n "2"p
4
由结果可知第二个“bbbb”行的行号为4,然后再在第四行的前或后添加相应的内容:
[root@xiaowu shell]# sed -e '4a\xiaowu' file
aaaa
bbbb
cccc
bbbb
xiaowu
dddd
[root@xiaowu shell]# sed -e '4a\xiaowu\nxiaowu' file
aaaa
bbbb
cccc
bbbb
xiaowu
xiaowu
dddd

向指定行的末尾添加指定内容,比如在“ccccc”行的行尾介绍“ eeeee”

[root@xiaowu shell]# cat file
aaaaa
bbbbb
ccccc
ddddd
[root@xiaowu shell]# sed 's/cc.*/& eeeee/g' file
aaaaa
bbbbb
ccccc eeeee
ddddd

目录
相关文章
|
5月前
|
Linux Perl
一个神奇的Linux命令-sed
一个神奇的Linux命令-sed
23 1
|
5月前
|
存储 监控 Linux
性能工具之linux三剑客awk、grep、sed详解
Linux 三剑客 awk,sed和grep 在性能领域广泛用于性能建模、性能监控及性能分析等方面,也是各大互联网公司测试岗高频面试题,中高端测试人员必备技能之一。
109 1
性能工具之linux三剑客awk、grep、sed详解
|
2月前
|
Linux Perl
在Linux中,如何使用请用 cut 或者 awk,sed命令取出 linux 中 eth0 的 IP 地址?
在Linux中,如何使用请用 cut 或者 awk,sed命令取出 linux 中 eth0 的 IP 地址?
|
8天前
|
Linux Perl
Linux之sed命令
Linux之sed命令
|
1月前
|
机器学习/深度学习 Linux Perl
Linux文本处理三剑客之sed详解
这篇博客详细讲解了Linux中的文本处理工具sed的使用方法和常用命令。
45 9
Linux文本处理三剑客之sed详解
|
11天前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
27 2
|
9天前
|
Linux Perl
6-20|linux sed命令
6-20|linux sed命令
|
2月前
|
Linux Shell Perl
在Linux中,如何使用sed命令进行文本替换?
在Linux中,如何使用sed命令进行文本替换?
|
2月前
|
数据挖掘 Linux Perl
在Linux中,awk和sed命令的作用?
在Linux中,awk和sed命令的作用?
|
2月前
|
Linux BI 数据处理
在Linux中,如何使用awk和sed进行文本处理?
在Linux中,如何使用awk和sed进行文本处理?
下一篇
无影云桌面