sed 第n行后加入_SHELL 在指定行的前/后插入指定内容

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

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

转:Jquery如何获取某个元素前(后)的文本内容?

原文:[解决]Jquery如何获取某个元素前(后)的文本内容? text here... 百万创 ...

sed插入,替换指定行的特定字符串,删除指定行首的#

sed -i '$a service snmpd start' /etc/rc.local sed -i "41s:public:mykey:g" /etc/snmp/snmpd. ...

HBase的java操作,最新API。(查询指定行、列、插入数据等)

关于HBase环境搭建和HBase的原理架构,请见笔者相关博客. 1.HBase对java有着较优秀的支持,本文将介绍如何使用java操作Hbase. 首先是pom依赖:

Jquery如何获取某个元素前(后)的文本内容?

text here... 百万创想 如何获得a标签 ...

Linux查看文件指定行数内容

1.tail date.log               输出文件末尾的内容,默认10行 tail -20  date.log        输出最后20行的内容 tail -n -20  date ...

Pandas 如何通过获取双(多)重索引获取指定行DataFrame数据

图片看不清楚的话,可以右键选择:“在新标签页中打开图片(I)” 参数 df.loc[(a,b),c]中第一个参数元组为索引内容,a为level0索引对应的内容,b为level1索引对应的内容 因为df ...

shell 指定行插入

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

linux下在某行的前一行或后一行添加内容

linux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容.今天在批量修改tomcat的日志时就用到了该功能. 一.在某行的前一行或后一行添加内容 具休操作如下: #匹配行前 ...

NPOI的使用Excel模板导出 可插入到指定行

Excel模版建议把需要添加数据行的样式设置好 模版样式,导出后效果 [2017-11-22 对获取需插入数据的首行样式有时为空报错修改] /// /// 根据模版导出 ...

随机推荐

Selenium2学习-031-WebUI自动化实战实例-029-JavaScript 在 Selenium 自动化中的应用实例之四(获取元素位置和大小)

通过 JS 或 JQuery 获取到元素后,通过 offsetLeft.offsetTop.offsetWidth.offsetHeight 即可获得元素的位置和大小,非常的简单,直接上源码了,敬请参 ...

[转]How do I use software from a PPA

[转]How do I use software from a PPA? https://launchpad.net/~mc3man/+archive/ubuntu/trusty-media To s ...

PHP实现仿Google分页效果的分页函数

本文实例讲述了PHP实现仿Google分页效果的分页函数.分享给大家供大家参考.具体如下: /** * 分页函数 * @param int $total 总页数 * @param int $pages ...

Winsock网络编程笔记(4)----基本的理论知识

前面的笔记记录了Winsock的入门编程,领略了Winsock编程的乐趣..但这并不能算是掌握了Winsock,加深理论知识的理解才会让后续学习更加得心应手..因此,这篇笔记将记录一些有关Winsoc ...

[转载] 高性能IO模型浅析

转载自http://www.cnblogs.com/fanzhidongyzby/p/4098546.html 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(B ...

C++ Primer 有感(管理类的指针成员)

C++类的指针成员与其他成员有所不同,指针成员指向一个内存地址,该地址的内存需要我没管理. 我现在分析一下为什么要管理指针成员. 有如下Student类,Student.h如下: [cpp] view ...

docker 安装redis , 让宿主机可以访问

1, docker 拉去最新版本的redis docker pull redis #后面可以带上tag号, 默认拉取最新版本 2, docker安装redis container 安装之前去定义我们的 ...

HTML+CSS 对于英文单词强制换行但不截断单词的解决办法

如何处理长的单词和链接(强制换行,连接符,省略号等) 我们在前端开发中经常会遇到一些很长的文本串从它的容器中溢出,例如: 通过这样一段css可以有效解决这种问题: .dont-break-out { ...

(转)python的paramiko模块

python的paramiko模块  原文:http://www.cnblogs.com/breezey/p/6663546.html     paramiko是用python语言写的一个模块,遵循S ...

C++ 获取当前时间

#include  #include  int main( void ) {     time_t t = time(0);     char ...

你可能感兴趣的:(sed,第n行后加入)